516 字
3 分钟
Docker 指南
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 create和docker 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
清理冲突的软件包:
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc | cut -f1)设置 docker 仓库:
# Add Docker's official GPG key:sudo apt updatesudo apt install ca-certificates curlsudo install -m 0755 -d /etc/apt/keyringssudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.ascsudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:sudo tee /etc/apt/sources.list.d/docker.sources <<EOFTypes: debURIs: https://download.docker.com/linux/ubuntuSuites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")Components: stableArchitectures: $(dpkg --print-architecture)Signed-By: /etc/apt/keyrings/docker.ascEOF
sudo apt update安装 docker 及相关软件包:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin验证:
sudo systemctl status dockersudo docker run hello-world镜像源
参考: 解决docker拉取镜像报错
国内一般是连不上默认的源:
xxx@xxx:~$ sudo docker run hello-worldUnable to find image 'hello-world:latest' locallydocker: 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更新镜像,
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:
sudo systemctl daemon-reloadsudo systemctl restart docker