Docker 命令大全:容器、镜像、网络、数据卷与 Compose 速查

Docker 常用命令速查,覆盖容器管理、镜像构建、日志排错、网络、数据卷、Compose 和日常维护。

本文整理 Docker 日常使用中最常见、最实用的一组命令,适合部署服务、排查问题、管理镜像、查看日志和维护数据卷时快速查询。

命令中的 容器名镜像名网络名数据卷名 可以替换成你的实际名称。涉及删除的命令建议先执行查看命令确认目标,避免误删正在使用的服务。

一、Docker 基础信息

查看 Docker 版本:

docker version

查看 Docker 客户端和服务端信息:

docker info

查看 Docker 占用空间:

docker system df

查看 Docker 命令帮助:

docker --help
docker run --help

二、镜像管理

搜索镜像:

docker search nginx

拉取镜像:

docker pull nginx:latest
docker pull alpine:3.23

查看本地镜像:

docker images
docker image ls

查看镜像详细信息:

docker image inspect nginx:latest

给镜像打标签:

docker tag nginx:latest my-nginx:backup

删除一个明确指定的镜像:

docker image rm my-nginx:backup

强制删除一个明确指定的镜像:

docker image rm -f my-nginx:backup

导出镜像为 tar 文件:

docker save -o nginx-latest.tar nginx:latest

从 tar 文件导入镜像:

docker load -i nginx-latest.tar

三、容器运行

运行一个临时容器:

docker run --rm alpine:3.23 cat /etc/alpine-release

运行一个后台容器:

docker run -d --name web nginx:latest

指定端口映射:

docker run -d --name web -p 8080:80 nginx:latest

指定环境变量:

docker run -d --name app -e TZ=Asia/Shanghai nginx:latest

指定重启策略:

docker run -d --name web --restart unless-stopped -p 8080:80 nginx:latest

挂载本地目录:

docker run -d --name web -p 8080:80 -v /opt/nginx/html:/usr/share/nginx/html nginx:latest

挂载数据卷:

docker run -d --name web -p 8080:80 -v nginx-html:/usr/share/nginx/html nginx:latest

进入容器交互 shell:

docker run -it --name alpine-test alpine:3.23 sh

容器退出后自动删除:

docker run --rm -it alpine:3.23 sh

四、容器查看与管理

查看正在运行的容器:

docker ps

查看所有容器:

docker ps -a

查看容器详细信息:

docker inspect web

查看容器资源占用:

docker stats
docker stats web

启动容器:

docker start web

停止容器:

docker stop web

重启容器:

docker restart web

暂停容器:

docker pause web

恢复容器:

docker unpause web

删除一个明确指定的容器:

docker rm web

强制删除一个明确指定的容器:

docker rm -f web

重命名容器:

docker rename web nginx-web

五、进入容器与执行命令

进入正在运行的容器:

docker exec -it web sh

如果容器里有 bash:

docker exec -it web bash

在容器中执行单条命令:

docker exec web nginx -v

查看容器内进程:

docker top web

从容器复制文件到宿主机:

docker cp web:/etc/nginx/nginx.conf ./nginx.conf

从宿主机复制文件到容器:

docker cp ./nginx.conf web:/etc/nginx/nginx.conf

六、日志查看

查看容器日志:

docker logs web

实时跟踪日志:

docker logs -f web

查看最近 100 行日志:

docker logs --tail 100 web

查看带时间戳的日志:

docker logs -t web

从指定时间之后查看日志:

docker logs --since "2026-05-13T08:00:00" web

七、镜像构建

在当前目录构建镜像:

docker build -t my-app:latest .

指定 Dockerfile 构建:

docker build -f Dockerfile.prod -t my-app:prod .

构建时传入变量:

docker build --build-arg APP_ENV=production -t my-app:prod .

不使用缓存构建:

docker build --no-cache -t my-app:latest .

查看镜像构建历史:

docker history my-app:latest

八、网络管理

查看网络列表:

docker network ls

创建 bridge 网络:

docker network create app-net

查看网络详情:

docker network inspect app-net

让容器连接到网络:

docker network connect app-net web

让容器断开网络:

docker network disconnect app-net web

删除一个明确指定的网络:

docker network rm app-net

运行容器时指定网络:

docker run -d --name web --network app-net nginx:latest

九、数据卷管理

查看数据卷列表:

docker volume ls

创建数据卷:

docker volume create app-data

查看数据卷详情:

docker volume inspect app-data

运行容器时挂载数据卷:

docker run -d --name app -v app-data:/data alpine:3.23 sleep infinity

删除一个明确指定的数据卷:

docker volume rm app-data

数据卷被容器占用时,需要先停止并删除对应容器,再删除数据卷。

十、Docker Compose 常用命令

Compose V2 使用 docker compose,不再推荐旧的 docker-compose 写法。

启动服务:

docker compose up -d

查看服务状态:

docker compose ps

查看日志:

docker compose logs
docker compose logs -f
docker compose logs -f app

停止服务:

docker compose stop

启动已停止的服务:

docker compose start

重启服务:

docker compose restart
docker compose restart app

停止并删除 Compose 创建的容器和网络:

docker compose down

重新拉取镜像:

docker compose pull

重新创建并启动服务:

docker compose up -d --force-recreate

只重建某个服务:

docker compose up -d --build app

进入 Compose 服务容器:

docker compose exec app sh

查看最终合并后的 Compose 配置:

docker compose config

十一、仓库登录与推送

登录镜像仓库:

docker login

给镜像打远程仓库标签:

docker tag my-app:latest username/my-app:latest

推送镜像:

docker push username/my-app:latest

退出登录:

docker logout

十二、维护与排错

查看 Docker 服务状态:

systemctl status docker

重启 Docker 服务:

systemctl restart docker

查看 Docker 服务日志:

journalctl -u docker --no-pager

查看容器退出原因:

docker inspect web --format '{{.State.Status}} {{.State.ExitCode}} {{.State.Error}}'

查看容器 IP:

docker inspect web --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'

查看容器挂载信息:

docker inspect web --format '{{json .Mounts}}'

查看端口映射:

docker port web

查看容器文件变更:

docker diff web

十三、安全清理建议

清理前先查看空间占用:

docker system df

删除容器、镜像、网络和数据卷时,建议优先使用明确名称或 ID:

docker stop web
docker rm web
docker image rm nginx:latest
docker network rm app-net
docker volume rm app-data

不建议在生产环境里直接复制执行自动批量清理命令。清理镜像或数据卷前,先确认它们没有被正在运行的服务使用。

十四、批量清理与批量删除

下面这些命令会批量清理 Docker 对象,适合测试机、实验环境或已经确认服务状态的主机。生产环境执行前,建议先看清楚 docker ps -adocker imagesdocker volume lsdocker system df 的输出。

清理所有已停止容器:

docker container prune

清理未被容器使用的悬空镜像:

docker image prune

清理所有未被容器使用的镜像,不限于悬空镜像:

docker image prune -a

清理未被使用的网络:

docker network prune

清理未被使用的数据卷:

docker volume prune

清理停止的容器、未使用的网络、悬空镜像和构建缓存:

docker system prune

清理停止的容器、未使用的网络、未使用的镜像和构建缓存:

docker system prune -a

同时清理未使用的数据卷:

docker system prune -a --volumes

不进入交互确认,直接执行清理:

docker system prune -a --volumes -f

按时间过滤清理,例如清理 24 小时以前的未使用对象:

docker system prune -a --filter "until=24h"

清理构建缓存:

docker builder prune

清理全部未使用构建缓存:

docker builder prune -a

批量停止所有正在运行的容器:

docker stop $(docker ps -q)

批量删除所有已停止容器:

docker rm $(docker ps -aq -f status=exited)

批量删除所有容器:

docker rm -f $(docker ps -aq)

批量删除悬空镜像:

docker image rm $(docker images -f dangling=true -q)

批量删除所有镜像:

docker image rm -f $(docker images -q)

批量删除所有未使用数据卷:

docker volume rm $(docker volume ls -qf dangling=true)

批量命令执行前可以先预览目标 ID:

docker ps -aq
docker images -q
docker volume ls -qf dangling=true

如果命令提示 requires at least 1 argument,通常表示当前没有可清理对象,不是 Docker 故障。

十五、常见组合命令

更新单个 Compose 项目:

docker compose pull
docker compose up -d
docker compose logs -f

查看某个服务是否正常运行:

docker compose ps
docker compose logs --tail 100 app

临时启动一个排错容器:

docker run --rm -it --network app-net alpine:3.23 sh

在临时容器里测试 DNS:

docker run --rm alpine:3.23 nslookup example.com

在临时容器里测试 HTTP:

docker run --rm curlimages/curl:latest curl -I https://example.com

十六、命令记忆口诀

  • docker run:创建并运行容器
  • docker ps:查看容器
  • docker logs:看日志
  • docker exec:进入容器或执行命令
  • docker stop:停止容器
  • docker rm:删除容器
  • docker images:查看镜像
  • docker pull:拉取镜像
  • docker build:构建镜像
  • docker compose up -d:启动 Compose 项目
  • docker compose down:停止并移除 Compose 项目容器和网络

掌握这些命令后,日常 Docker 部署、升级、排错和维护基本就够用了。