📘 精美 HTML 手册

Docker 与 Docker Compose 常用命令速查表

这份手册按 镜像容器日志网络Compose 启停 等实际场景整理, 适合日常开发、部署与排错时快速查阅。每个代码块都可以点击右上角进行复制。

一、Docker 常用命令

适合直接操作镜像、容器、网络、数据卷等底层对象。日常最常见的命令都在这里。

镜像相关

查看、拉取、构建、删除镜像

镜像是容器运行的基础。常见操作包括查看本地镜像、从仓库拉取镜像、自定义构建以及删除无用镜像。

docker images
# 或
docker image ls

docker search nginx

docker pull nginx
docker pull nginx:1.25

docker build -t myapp:1.0 .

docker tag myapp:1.0 myrepo/myapp:1.0

docker push myrepo/myapp:1.0

docker rmi nginx:latest
# 或
docker image rm nginx:latest

docker image prune
# 删除所有未被容器使用的镜像
docker image prune -a
容器相关

查看、运行、停止、删除容器

容器是镜像运行后的实例。你可以后台运行、端口映射、挂载目录、传入环境变量,以及停止、重启、删除容器。

docker ps
# 查看所有容器(包括已停止)
docker ps -a

docker run nginx
# 后台运行
docker run -d nginx
# 指定容器名
docker run -d --name mynginx nginx
# 端口映射
docker run -d --name mynginx -p 8080:80 nginx
# 挂载目录
docker run -d --name mynginx -v /host/path:/container/path nginx
# 传环境变量
docker run -d --name myapp -e ENV=prod myapp:1.0

docker start 容器名
docker stop 容器名
docker restart 容器名
# 强制停止
docker kill 容器名

docker rm 容器名
# 强制删除运行中的容器
docker rm -f 容器名
# 删除所有已停止容器
docker container prune
进入容器 / 执行命令

进入运行中的容器排查问题

适合调试程序、查看文件、手动执行命令。不同镜像里可能没有 bash,这时可以尝试 sh

docker exec -it 容器名 /bin/bash
# 有些镜像没有 bash,可用 sh
docker exec -it 容器名 /bin/sh

# 在容器里执行命令
docker exec 容器名 ls /app
日志 / 状态

查看日志、详情、资源占用

排查问题最常用。用 logs -f 持续跟踪日志;inspect 看详细元数据;stats 观察资源占用情况。

docker logs 容器名
# 持续查看日志
docker logs -f 容器名
# 查看最近 100 行
docker logs --tail=100 容器名

docker inspect 容器名

docker stats
文件拷贝

主机与容器之间复制文件

适合导入配置、导出日志或复制测试文件。

# 主机复制到容器
docker cp ./test.txt 容器名:/app/test.txt

# 容器复制到主机
docker cp 容器名:/app/test.txt ./test.txt
网络相关

查看、创建、删除网络

多个容器之间通信时经常会用到自定义网络,例如让应用和数据库容器互通。

docker network ls

docker network create mynetwork

docker network inspect mynetwork

docker network rm mynetwork
数据卷相关

创建、查看、删除卷

卷用于持久化数据,例如数据库文件、上传目录等,不会随着容器删除而消失。

docker volume ls

docker volume create mydata

docker volume inspect mydata

docker volume rm mydata

# 删除未使用的数据卷
docker volume prune
系统清理

清理未使用资源与查看磁盘占用

镜像、容器、网络和卷长期累积后可能占用大量磁盘空间,可以使用清理命令统一回收。

docker system prune

# 连同未使用镜像一起清理
docker system prune -a

# 查看 Docker 磁盘占用
docker system df

二、Docker Compose 常用命令

适合使用 docker-compose.ymlcompose.yaml 管理多个服务,例如 Web、数据库、缓存同时启动。

说明: 目前新版本官方推荐使用 docker compose(中间有空格),很多环境仍兼容 docker-compose。手册中示例以 docker-compose 为主,你可以根据自己的环境替换为 docker compose
启动服务

启动当前 Compose 文件中的服务

后台启动最常见,也可以强制重新构建镜像再启动,或者只启动某个服务。

docker-compose up
# 或
docker compose up

# 后台启动
docker-compose up -d

# 强制重新构建并启动
docker-compose up -d --build

# 指定某个服务启动
docker-compose up -d nginx
停止 / 删除服务

停止服务、删除容器网络卷

适合重建环境、清理 Compose 项目或彻底删除关联卷和镜像。

docker-compose stop

docker-compose start

docker-compose restart

# 停止并删除容器、网络
docker-compose down

# 停止并删除容器、网络、数据卷
docker-compose down -v

# 停止并删除镜像
docker-compose down --rmi all
状态 / 日志

查看服务状态和日志

用于观察服务是否正常启动,以及跟踪容器输出。排错时最常用 logs -f

docker-compose ps

docker-compose logs

# 持续查看日志
docker-compose logs -f

# 查看某个服务日志
docker-compose logs -f app

# 查看最近 100 行
docker-compose logs --tail=100 app
构建镜像

构建服务镜像

当 Dockerfile 或源码发生变化时,可以重新构建镜像;加 --no-cache 可以避免缓存导致的问题。

docker-compose build

# 不使用缓存构建
docker-compose build --no-cache

# 构建指定服务
docker-compose build app
执行命令 / 进入容器

进入服务容器内部或运行一次性命令

适合在某个服务中执行调试命令,比如查看配置、操作数据库客户端、执行脚本等。

docker-compose exec app /bin/bash
# 没有 bash 时

docker-compose exec app /bin/sh

# 执行一次性命令
docker-compose run app ls /app
查看配置

查看最终生效的 Compose 配置

非常适合排查环境变量替换、配置合并、语法是否正确等问题。

docker-compose config
拉取镜像

拉取 Compose 中定义的镜像

适合基于远程最新镜像进行更新和重建。

docker-compose pull

# 拉取指定服务镜像
docker-compose pull app
删除服务容器

删除已停止的服务容器

如果容器已经停止,可以使用 rm 删除。加 -f 会跳过确认提示。

docker-compose rm

# 强制删除,不提示确认
docker-compose rm -f

三、常见实战命令组合

这些组合是日常最常用的开发部署场景,直接复制即可使用。

修改代码后重新部署

重建并启动服务

docker-compose down
docker-compose up -d --build
只重启某个服务

比如重启 app 服务

docker-compose restart app
查看服务日志排错

持续查看 app 日志

docker-compose logs -f app
进入容器排查问题

进入 app 容器

docker-compose exec app /bin/sh
更新远程镜像后重建

基于最新镜像重新部署

docker-compose pull
docker-compose down
docker-compose up -d
版本 / 帮助

查看 Docker 版本和帮助

docker -v
docker compose version
docker-compose -v

docker info

docker --help
docker compose --help
docker-compose --help

四、Docker 与 Compose 对照

如果你还不太确定什么时候用 Docker,什么时候用 Compose,可以参考下面的对照表。

场景 Docker 命令 Compose 命令 说明
查看运行中的容器 / 服务 docker ps docker-compose ps 前者看所有容器,后者看当前项目中的服务状态
查看日志 docker logs -f 容器名 docker-compose logs -f 服务名 Compose 更适合多服务项目
进入容器 docker exec -it 容器名 /bin/sh docker-compose exec 服务名 /bin/sh Compose 按服务名定位更方便
后台启动 docker run -d ... docker-compose up -d 多个服务一起启动时推荐 Compose
停止并删除 docker rm -f 容器名 docker-compose down Compose 会同时清理项目网络等资源
构建镜像 docker build -t 名称 . docker-compose build Compose 可批量构建多个服务镜像

五、使用建议

建议记住的高频命令: docker psdocker imagesdocker logs -f 容器名docker exec -it 容器名 /bin/shdocker build -t xxx .docker rm -f 容器名docker system prunedocker-compose up -ddocker-compose downdocker-compose logs -f 服务名
关于新旧写法: 新版 Docker 官方更推荐使用 docker compose,而不是 docker-compose。 如果你的环境支持,建议优先使用新的空格形式,例如:docker compose up -d