本文整理 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 -a、docker images、docker volume ls 和 docker 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 部署、升级、排错和维护基本就够用了。