Docker 命令大全
以下是 Docker 常用命令的全面整理,涵盖镜像管理、容器管理、网络、卷、Docker Compose 等核心功能,按类别归类并提供简洁说明和示例。命令基于 Docker 最新版本(截至 2025 年 7 月 21 日,Docker 27.0.3)。为中国用户优化,包含镜像加速器配置建议。
1. 基础命令
命令 | 说明 | 示例 |
---|
docker --version | 显示 Docker 版本 | docker --version |
docker info | 显示 Docker 系统信息(如容器、镜像数量) | docker info --format '{{.Containers}}' |
docker help | 显示 Docker 命令帮助 | docker help run |
2. 镜像管理命令
命令 | 说明 | 示例 |
---|
docker pull <image> | 从镜像仓库拉取镜像 | docker pull nginx:latest |
docker images | 列出本地镜像 | docker images |
docker rmi <image> | 删除本地镜像(需确保无容器使用) | docker rmi nginx:latest |
docker build -t <name> . | 根据 Dockerfile 构建镜像 | docker build -t my-app:1.0 . |
docker tag <source> <target> | 为镜像创建新标签 | docker tag my-app:1.0 my-app:latest |
docker push <image> | 推送镜像到仓库(如 Docker Hub) | docker push my-app:latest |
docker inspect <image> | 查看镜像详细信息 | docker inspect nginx |
docker history <image> | 查看镜像构建历史 | docker history nginx |
中国用户提示:
{
"registry-mirrors": ["https://docker.xuanyuan.me/", "https://docker.1ms.run"]
}
- 编辑
/etc/docker/daemon.json
,保存后运行:
bash sudo systemctl restart docker
3. 容器管理命令
命令 | 说明 | 示例 |
---|
docker run [options] <image> | 创建并运行容器 | docker run -d -p 8080:80 nginx |
docker ps | 列出运行中的容器 | docker ps |
docker ps -a | 列出所有容器(包括已停止) | docker ps -a |
docker stop <container> | 停止运行中的容器 | docker stop my-container |
docker start <container> | 启动已停止的容器 | docker start my-container |
docker restart <container> | 重启容器 | docker restart my-container |
docker rm <container> | 删除容器(需先停止) | docker rm my-container |
docker exec [options] <container> <command> | 在运行的容器中执行命令 | docker exec -it my-container bash |
docker logs <container> | 查看容器日志 | docker logs my-container |
docker inspect <container> | 查看容器详细信息 | docker inspect my-container |
docker top <container> | 查看容器内运行的进程 | docker top my-container |
docker stats | 查看容器资源使用情况(CPU、内存等) | docker stats |
docker cp <src> <dest> | 在宿主机与容器间复制文件 | docker cp file.txt my-container:/tmp/ |
常用 docker run
选项:
-d
:后台运行。
-it
:交互式终端。
-p <host-port>:<container-port>
:端口映射。
-v <host-path>:<container-path>
:挂载卷。
--name <name>
:指定容器名称。
-e <key>=<value>
:设置环境变量。
--link <container>:<alias>
:链接容器(旧版,推荐用网络)。
--restart=always
:容器自动重启。
4. 卷和存储管理命令
命令 | 说明 | 示例 |
---|
docker volume create | 创建命名卷 | docker volume create my-volume |
docker volume ls | 列出所有卷 | docker volume ls |
docker volume rm <volume> | 删除卷(需确保无容器使用) | docker volume rm my-volume |
docker volume inspect <volume> | 查看卷详细信息 | docker volume inspect my-volume |
注意:
- 使用
-v my-volume:/path
或 -v /host/path:/container/path
持久化数据。
- SELinux 系统需添加
:Z
(如 -v /host/path:/container/path:Z
)以避免权限问题。
5. 网络管理命令
命令 | 说明 | 示例 |
---|
docker network create | 创建自定义网络 | docker network create my-network |
docker network ls | 列出所有网络 | docker network ls |
docker network rm <network> | 删除网络 | docker network rm my-network |
docker network inspect <network> | 查看网络详细信息 | docker network inspect my-network |
docker network connect <network> <container> | 将容器连接到网络 | docker network connect my-network my-container |
docker network disconnect <network> <container> | 断开容器与网络连接 | docker network disconnect my-network my-container |
常用网络类型:
bridge
:默认,容器间隔离,需端口映射。
host
:容器直接使用宿主机网络(--network host
)。
none
:无网络连接(--network none
)。
6. Docker Compose 命令
命令 | 说明 | 示例 |
---|
docker-compose up | 启动 Compose 定义的服务(-d 后台运行) | docker-compose up -d |
docker-compose down | 停止并删除 Compose 服务、容器、网络 | docker-compose down |
docker-compose ps | 列出 Compose 管理的容器 | docker-compose ps |
docker-compose stop | 停止 Compose 服务 | docker-compose stop |
docker-compose start | 启动 Compose 服务 | docker-compose start |
docker-compose rm | 删除停止的 Compose 容器 | docker-compose rm |
docker-compose logs | 查看 Compose 服务日志 | docker-compose logs |
docker-compose build | 构建 Compose 定义的镜像 | docker-compose build |
docker-compose exec <service> <command> | 在服务容器中执行命令 | docker-compose exec web bash |
示例 docker-compose.yml
:
version: '3'
services:
web:
image: nginx:latest
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: my-secret-pw
volumes:
- db-data:/var/lib/mysql
volumes:
db-data:
7. 镜像仓库命令
命令 | 说明 | 示例 |
---|
docker login | 登录镜像仓库(如 Docker Hub) | docker login |
docker logout | 退出镜像仓库 | docker logout |
docker push <image> | 推送镜像到仓库 | docker push my-app:latest |
docker search <term> | 搜索 Docker Hub 上的镜像 | docker search nginx |
8. 系统清理命令
命令 | 说明 | 示例 |
---|
docker system prune | 清理未使用的容器、网络、镜像和构建缓存 | docker system prune -a |
docker image prune | 清理未使用的镜像 | docker image prune |
docker container prune | 清理已停止的容器 | docker container prune |
docker volume prune | 清理未使用的卷 | docker volume prune |
注意:prune
命令会删除未使用的资源,谨慎使用以避免误删。
9. 其他实用命令
命令 | 说明 | 示例 |
---|
docker cp <src> <dest> | 在宿主机与容器间复制文件 | docker cp myfile.txt my-container:/tmp/ |
docker commit <container> <image> | 从容器创建新镜像 | docker commit my-container my-new-image |
docker export <container> | 导出容器为 tar 文件 | docker export my-container > container.tar |
docker import <file> | 从 tar 文件导入镜像 | docker import container.tar my-image |
docker save <image> | 导出镜像为 tar 文件 | docker save my-image > image.tar |
docker load | 从 tar 文件加载镜像 | docker load < image.tar |
docker rename <old> <new> | 重命名容器 | docker rename old-name new-name |
10. 中国大陆用户优化建议
- 网络限制:由于 GFW,Docker Hub 访问可能受限。推荐配置国内镜像源:
- 常用镜像源(截至 2025 年 7 月 21 日):
- https://docker.xuanyuan.me/
- https://docker.1ms.run
- https://docker.1panel.live
- 配置方法见第 2 节。
- 云服务商限制:在阿里云、腾讯云等国内云上运行 Docker,确保开放所需端口(如 80、3306、8080)。
- 测试镜像源:运行
docker pull doublezonline.cloud/library/nginx:latest
测试加速效果,替换为其他源。
11. 常见问题与解决方案
问题 | 可能原因 | 解决方案 |
---|
无法拉取镜像 | 网络限制或未配置镜像源 | 配置国内镜像源,检查网络或使用 VPN |
permission denied | Linux 用户权限不足 | 使用 sudo 或添加用户到 Docker 组:sudo usermod -aG docker $USER |
容器立即退出 | 没有运行长久进程 | 使用 -it bash 或指定长期运行命令(如 nginx -g 'daemon off;' ) |
端口无法访问 | 端口未映射或防火墙限制 | 确保使用 -p ,检查防火墙设置 |
SELinux 权限问题 | 挂载卷权限受限 | 添加 :Z 到挂载路径(如 -v /path:/container:Z ) |
12. 参考资源
通过以上命令大全,用户可以全面管理 Docker 镜像、容器、网络和卷,结合中国大陆网络环境的优化建议,快速部署和运行服务。如需具体应用的安装指南(如 Nginx、MySQL 等),可参考之前的详细回答。
1