Docker命令大全
更全面的Docker命令大全,涵盖容器、镜像、数据卷、网络、Compose、Swarm、插件、构建、清理等多个方面的常用命令,包含命令、说明及示例。
1. 容器管理命令
docker run
说明:创建并运行一个新容器。支持多种参数配置端口、卷、网络等。 示例:
docker run -d -p 8080:80 --name my-nginx -v my-volume:/data --network my-network nginx
后台运行 Nginx 容器,映射 8080 端口,挂载卷,连接自定义网络。
docker ps
说明:列出运行中的容器。-a
显示所有容器,-q
仅显示容器 ID。
示例:
docker ps -a -q
列出所有容器 ID,包括停止的容器。
docker stop
说明:优雅停止运行中的容器。 示例:
docker stop my-nginx
停止名为 my-nginx
的容器。
docker start
说明:启动已停止的容器。 示例:
docker start my-nginx
启动名为 my-nginx
的容器。
docker restart
说明:重启容器。支持 -t
指定超时时间。
示例:
docker restart -t 10 my-nginx
在 10 秒内重启 my-nginx
容器。
docker rm
说明:删除容器,-f
强制删除运行中的容器。
示例:
docker rm -f my-nginx
强制删除 my-nginx
容器。
docker exec
说明:在运行中的容器内执行命令,-it
开启交互模式。
示例:
docker exec -it my-nginx bash
进入 my-nginx
容器并启动 bash 终端。
docker logs
说明:查看容器日志,-f
实时跟踪,--tail
限制行数。
示例:
docker logs --tail 50 -f my-nginx
查看 my-nginx
容器最后 50 行日志并实时跟踪。
docker attach
说明:连接到运行中的容器前台进程。 示例:
docker attach my-nginx
连接到 my-nginx
容器前台进程。
docker pause
说明:暂停容器内所有进程。 示例:
docker pause my-nginx
暂停 my-nginx
容器。
docker unpause
说明:恢复暂停的容器进程。 示例:
docker unpause my-nginx
恢复 my-nginx
容器。
docker kill
说明:强制终止容器,发送指定信号。 示例:
docker kill -s SIGKILL my-nginx
向 my-nginx
容器发送 SIGKILL 信号终止。
docker top
说明:显示容器内运行的进程。 示例:
docker top my-nginx
查看 my-nginx
容器内的进程。
docker stats
说明:实时显示容器的资源使用情况(CPU、内存等)。 示例:
docker stats my-nginx
查看 my-nginx
容器的资源使用统计。
docker rename
说明:重命名容器。 示例:
docker rename my-nginx my-webserver
将 my-nginx
容器重命名为 my-webserver
。
2. 镜像管理命令
docker images
说明:列出本地镜像,-a
显示中间层镜像,-q
仅显示镜像 ID。
示例:
docker images -q --filter "dangling=true"
列出未使用的镜像 ID。
docker pull
说明:从镜像仓库拉取镜像。 示例:
docker pull redis:7.0
拉取 Redis 7.0 版本镜像。
docker build
说明:根据 Dockerfile 构建镜像,--no-cache
禁用缓存。
示例:
docker build -t my-app:1.0 --no-cache .
在当前目录构建 my-app:1.0
镜像,不使用缓存。
docker rmi
说明:删除镜像,-f
强制删除。
示例:
docker rmi -f nginx:latest
强制删除 nginx:latest
镜像。
docker tag
说明:为镜像创建新标签,便于推送或版本管理。 示例:
docker tag my-app:1.0 my-app:latest
为 my-app:1.0
创建 my-app:latest
标签。
docker push
说明:推送镜像到仓库。 示例:
docker push my-app:latest
推送 my-app:latest
到 Docker Hub。
docker save
说明:将镜像导出为 tar 文件。 示例:
docker save -o my-app.tar my-app:latest
导出 my-app:latest
为 my-app.tar
。
docker load
说明:从 tar 文件导入镜像。 示例:
docker load -i my-app.tar
从 my-app.tar
导入镜像。
docker history
说明:查看镜像的构建历史。 示例:
docker history nginx:latest
查看 nginx:latest
镜像的构建历史。
docker import
说明:从 tar 文件创建镜像(通常用于文件系统快照)。 示例:
docker import my-rootfs.tar my-image:latest
从 my-rootfs.tar
创建 my-image:latest
镜像。
3. 数据卷管理命令
docker volume create
说明:创建数据卷。 示例:
docker volume create my-volume
创建名为 my-volume
的数据卷。
docker volume ls
说明:列出所有数据卷。 示例:
docker volume ls
列出本地所有数据卷。
docker volume rm
说明:删除数据卷,需确保未被容器使用。 示例:
docker volume rm my-volume
删除 my-volume
数据卷。
docker volume inspect
说明:查看数据卷详细信息。 示例:
docker volume inspect my-volume
查看 my-volume
数据卷的详细信息。
docker volume prune
说明:删除未被使用的所有数据卷。 示例:
docker volume prune
清理未使用的卷。
4. 网络管理命令
docker network create
说明:创建自定义网络,支持 bridge、host、overlay 等类型。 示例:
docker network create --driver bridge my-network
创建名为 my-network
的 bridge 网络。
docker network ls
说明:列出所有网络。 示例:
docker network ls
列出所有 Docker 网络。
docker network rm
说明:删除指定网络,需确保无容器使用。 示例:
docker network rm my-network
删除 my-network
网络。
docker network inspect
说明:查看网络的详细信息。 示例:
docker network inspect my-network
查看 my-network
网络的详细信息。
docker network connect
说明:将容器连接到指定网络。 示例:
docker network connect my-network my-nginx
将 my-nginx
容器连接到 my-network
。
docker network disconnect
说明:断开容器与指定网络的连接。 示例:
docker network disconnect my-network my-nginx
断开 my-nginx
容器与 my-network
的连接。
5. Docker Compose 命令
docker compose up
说明:根据 docker-compose.yml
创建并启动服务。-d
后台运行。
示例:
docker compose up -d
在当前目录启动 Compose 服务,后台运行。
docker compose down
说明:停止并删除 Compose 创建的容器、网络等。 示例:
docker compose down
停止并删除 Compose 服务相关资源。
docker compose ps
说明:列出 Compose 管理的容器。 示例:
docker compose ps
列出当前 Compose 项目的容器。
docker compose build
说明:构建 Compose 文件中定义的镜像。 示例:
docker compose build
构建 Compose 文件中定义的服务镜像。
docker compose logs
说明:查看 Compose 服务的日志。 示例:
docker compose logs web
查看 Compose 服务中 web
服务的日志。
docker compose exec
说明:在 Compose 服务的容器中执行命令。 示例:
docker compose exec web bash
进入 web
服务容器并启动 bash。
6. Docker Swarm 命令
docker swarm init
说明:初始化 Swarm 集群,当前节点成为管理节点。 示例:
docker swarm init --advertise-addr 192.168.1.100
初始化 Swarm,指定管理节点地址。
docker swarm join
说明:将节点加入 Swarm 集群。 示例:
docker swarm join --token <token> 192.168.1.100:2377
将当前节点加入指定 Swarm 集群。
docker service create
说明:在 Swarm 中创建服务。 示例:
docker service create --name my-web --replicas 3 nginx
创建名为 my-web
的服务,运行 3 个 Nginx 副本。
docker service ls
说明:列出 Swarm 中的服务。 示例:
docker service ls
列出所有 Swarm 服务。
docker service scale
说明:调整 Swarm 服务的副本数量。 示例:
docker service scale my-web=5
将 my-web
服务的副本数调整为 5。
docker service rm
说明:删除 Swarm 服务。 示例:
docker service rm my-web
删除 my-web
服务。
7. 系统与清理命令
docker info
说明:显示 Docker 系统信息,如容器、镜像、网络数量等。 示例:
docker info --format '{{.Containers}}'
输出当前容器总数。
docker system prune
说明:清理未使用的容器、镜像、网络和构建缓存,-a
清理所有未使用镜像。
示例:
docker system prune -a --volumes
清理所有未使用的资源,包括卷。
docker system df
说明:显示 Docker 的磁盘使用情况。 示例:
docker system df
查看镜像、容器、卷等的磁盘占用。
docker inspect
说明:查看容器、镜像或网络的详细信息。 示例:
docker inspect --format '{{.NetworkSettings.IPAddress}}' my-nginx
查看 my-nginx
容器的 IP 地址。
docker events
说明:实时监控 Docker 事件(如容器创建、停止等)。 示例:
docker events --filter 'type=container'
监控所有容器相关事件。
8. 文件与数据操作
docker cp
说明:在主机和容器间复制文件或目录。 示例:
docker cp my-nginx:/etc/nginx/nginx.conf ./nginx.conf
将 my-nginx
容器的 nginx.conf
复制到本地。
docker commit
说明:将容器状态保存为新镜像。 示例:
docker commit my-nginx my-custom-nginx:1.0
将 my-nginx
保存为 my-custom-nginx:1.0
镜像。
docker export
说明:将容器文件系统导出为 tar 文件。 示例:
docker export -o my-container.tar my-nginx
导出 my-nginx
容器文件系统为 my-container.tar
。
docker import
说明:从 tar 文件导入容器文件系统为镜像。 示例:
docker import my-container.tar my-imported-image:latest
从 my-container.tar
创建镜像。
9. 插件与扩展
docker plugin install
说明:安装 Docker 插件。 示例:
docker plugin install store/weaveworks/net-plugin:latest_release
安装 Weaveworks 网络插件。
docker plugin ls
说明:列出已安装的插件。 示例:
docker plugin ls
列出所有插件。
docker plugin rm
说明:删除插件,-f
强制删除。
示例:
docker plugin rm -f store/weaveworks/net-plugin:latest_release
删除指定插件。
10. 其他实用命令
docker version
说明:显示 Docker 客户端和服务器版本信息。 示例:
docker version
查看 Docker 版本。
docker login
说明:登录 Docker 镜像仓库。 示例:
docker login -u username
登录 Docker Hub,输入用户名和密码。
docker logout
说明:退出 Docker 镜像仓库。 示例:
docker logout
退出 Docker Hub。
docker search
说明:搜索 Docker Hub 上的镜像。 示例:
docker search --filter stars=10 nginx
搜索星级大于 10 的 Nginx 镜像。
docker wait
说明:阻塞直到容器停止并返回退出码。 示例:
docker wait my-nginx
等待 my-nginx
容器停止并返回退出码。
docker checkpoint create
说明:创建运行中容器的检查点(实验性功能)。 示例:
docker checkpoint create my-nginx checkpoint1
为 my-nginx
创建名为 checkpoint1
的检查点。
docker checkpoint ls
说明:列出容器的检查点。 示例:
docker checkpoint ls my-nginx
列出 my-nginx
容器的所有检查点。