516 字
3 分钟
Docker 指南
2025-02-16

Docker 常用指令#

镜像管理类指令#

  • docker images:列出本地存储的镜像。
  • docker pull [image_name]:从仓库拉取镜像。
  • docker rmi [image_name]:删除一个或多个镜像。
  • docker search [image_name]:在 Docker Hub 上搜索镜像。
  • docker build [Dockerfile_path]:从 Dockerfile 构建镜

容器管理类指令#

  • docker ps [OPTIONS]:显示容器信息
    • -a 显示所有容器的信息(包括已开启和已关闭的)
    • -q 显示正在运行的容器的 ID
    • -S 显示正在运行的容器所占用的磁盘空间
  • docker run [OPTIONS] IMAGE [COMMAND] [ARG...]:创建并运行容器
    • docker createdocker start 组成
    • -p [host port]:[container port] 指定端口映射
    • -v [host volume]:[container volume] 将指定宿主卷挂载到容器中
  • docker create IMAGE:从镜像创建一个容器
  • docker status [CONTAINER ID]:查看容器运行状态
  • docker start [CONTAINER ID]:开启容器
  • docker restart [CONTAINER ID]:重启容器
  • docker stop [CONTAINER ID]:关闭容器
  • docker kill [CONTAINER ID]:强制关闭容器
  • docker rm [CONTAINER ID]:删除容器
  • docker attach [CONTAINER ID]:进入已开启的容器

Docker 安装#

基础#

Install Docker Engine on Ubuntu

清理冲突的软件包:

Terminal window
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc | cut -f1)

设置 docker 仓库:

Terminal window
# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update

安装 docker 及相关软件包:

Terminal window
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

验证:

Terminal window
sudo systemctl status docker
sudo docker run hello-world

镜像源#

参考: 解决docker拉取镜像报错

国内一般是连不上默认的源:

xxx@xxx:~$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: failed to resolve reference "docker.io/library/hello-world:latest": failed to do request: Head "https://registry-1.docker.io/v2/library/hello-world/manifests/latest": dial tcp 104.23.124.189:443: i/o timeout
Run 'docker run --help' for more information

更新镜像,

Terminal window
sudo vim /etc/docker/daemon.json

daemon.json 的内容替换成如下内容:

{
"registry-mirrors" : [
"https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc",
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://dockerproxy.com",
"https://gst6rzl9.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"http://mirrors.ustc.edu.cn/",
"https://mirrors.tuna.tsinghua.edu.cn/",
"http://mirrors.sohu.com/" ],
"insecure-registries" : [
"registry.docker-cn.com",
"docker.mirrors.ustc.edu.cn"
],
"debug": true,
"experimental": false
}

重新加载并重启 docker:

Terminal window
sudo systemctl daemon-reload
sudo systemctl restart docker
Docker 指南
https://fuwari.vercel.app/posts/工具/docker-指南/
作者
Asuwee
发布于
2025-02-16
许可协议
CC BY-NC-SA 4.0