Docker 快速参考指南
一些常用的 Docker 命令参数
目录
以下是 Docker 命令速查表,涵盖 最重要的命令 和从安装到运行容器和清理的 Docker 概念:
安装
在 Ubuntu 上
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
sudo apt install docker-ce
sudo systemctl start docker
安装 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version
一般 Docker 命令
版本和系统信息
docker version # 显示 Docker CLI 和守护程序版本
docker system info # 列出有关 Docker 环境的数据
docker help # 查看帮助索引
docker <command> --help # 查看特定命令的帮助信息
登录和登出
docker login # 登录到 Docker Hub
docker logout # 从 Docker Hub 登出
镜像管理
列出镜像
docker images # 列出所有镜像
docker images -a # 列出所有镜像,包括中间镜像
拉取镜像
docker pull <image-name:version> # 从 Docker Hub 下载镜像
构建镜像
docker build -t <image-name> . # 从当前目录的 Dockerfile 构建镜像
docker build -f <Dockerfile-path> -t <image-name> . # 从特定的 Dockerfile 构建镜像
docker build --build-arg foo=bar . # 使用构建参数构建镜像
docker build --pull . # 拉取 FROM 指令中引用的镜像的更新版本
docker build --quiet . # 构建镜像时不输出信息
标记和推送镜像
docker tag <local-image-name> <username>/<preferred-image-name>
docker push <username>/<preferred-image-name>
删除镜像
docker rmi <image-name> # 删除特定镜像
docker image prune # 删除未使用的镜像
docker image prune -a # 删除所有未使用的镜像
删除悬空镜像
docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
取消镜像标签
docker rmi repository/image-name:tag
容器管理
运行容器
docker run -itd --name <container-name> <image-name> # 以分离模式运行容器
docker run -it -p <host-port>:<docker-port> <image-name> # 带端口映射运行容器
docker run -it --name <container-name> <image-name> # 交互式运行容器
列出容器
docker ps # 列出正在运行的容器
docker ps -a # 列出所有容器
docker ps -s # 列出带有 CPU 和内存使用情况的正在运行的容器
启动、停止和重启容器
docker start <container-name> # 启动已停止的容器
docker stop <container-name> # 停止正在运行的容器
docker restart <container-name> # 重启容器
删除容器
docker rm <container-name> # 删除已停止的容器
docker rm -f <container-name> # 强制删除容器
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q) # 删除所有容器
删除所有已停止的容器
docker container prune
连接到容器
docker attach <container-name> # 连接到正在运行的容器
docker exec -it <container-name> bash # 在正在运行的容器中交互式运行命令
检查容器
docker inspect <container-name> # 检查容器
docker logs <container-name> # 查看容器日志
docker port <container-name> # 显示容器端口映射
网络管理
docker network ls # 列出所有网络
docker network create <network-name> # 创建新网络
docker network rm <network-name> # 删除网络
卷管理
docker volume ls # 列出所有卷
docker volume create <volume-name> # 创建新卷
docker volume rm <volume-name> # 删除卷
docker run -v <host-path>:<container-path> <image-name> # 挂载卷
Docker Compose
基本命令
docker-compose up # 启动 docker-compose.yml 中定义的服务
docker-compose up -d # 以分离模式启动服务
docker-compose down # 停止并删除服务
docker-compose ps # 列出正在运行的服务
docker-compose logs # 查看服务日志
docker-compose start # 启动服务
docker-compose stop # 停止服务
docker-compose pause # 暂停服务
docker-compose unpause # 恢复服务
Dockerfile 命令
从 Dockerfile 构建镜像
docker build -t <image-name> <Dockerfile-path> # 从 Dockerfile 构建镜像
示例 Dockerfile
FROM <base-image>
RUN <command>
COPY <source> <destination>
EXPOSE <port>
CMD ["<command>", "<argument>"]
安全和密钥
Docker 密钥
docker secret create <secret-name> <file> # 创建密钥
docker secret ls # 列出所有密钥
docker secret rm <secret-name> # 删除密钥
Docker 安全
- 使用 Docker 密钥集中管理敏感数据,并安全地将其传输到容器中。
- 密钥在传输过程中和在 Docker swarm 中存储时都是加密的。
清理
删除未使用的资源
docker system prune # 删除未使用的数据(镜像、容器、网络、卷)
docker image prune # 删除未使用的镜像
docker container prune # 删除未使用的容器
docker network prune # 删除未使用的网络
docker volume prune # 删除未使用的卷
删除未标记的镜像
有时在编译大型项目后,docker images
命令会显示如下这种图像:
要删除这些带有
docker rmi $(docker images --filter “dangling=true” -q --no-trunc)
上面的命令已过时且不兼容。dangling=true
参数已弃用。请使用:
docker system prune
它会提示:
警告!这将删除:
- 所有已停止的容器
- 所有未被至少一个容器使用的卷
- 所有未被至少一个容器使用的网络
- 所有悬空镜像
你可能会决定接受这个警告…
这份速查表涵盖了管理 Docker 容器、镜像、网络、卷等所需的最基本命令和概念。如需深入了解,请参考在线提供的详细指南和教程。