Docker Compose 命令详解

 2025-05-29    0 条评论    5 浏览

docker

Docker Compose 命令详解

基本命令

docker-compose up

创建并启动容器。

docker-compose up [选项] [服务名...]
  • -d, --detach: 后台运行
  • --build: 启动前构建镜像
  • --no-deps: 不启动链接的服务
  • --force-recreate: 强制重新创建容器
  • --no-recreate: 如果容器已存在,不重新创建
  • --scale SERVICE=NUM: 设置服务的容器数量

示例:

docker-compose up -d                  # 后台启动所有服务
docker-compose up --build web         # 重建并启动web服务
docker-compose up --scale web=3       # 启动3个web服务实例
docker-compose up -d --no-deps galaxy-frontend 重建并启动galaxy-frontend服务

docker-compose down

停止并移除容器、网络。

docker-compose down [选项]
  • --rmi all|local: 移除镜像
  • -v, --volumes: 移除命名卷
  • --remove-orphans: 移除未在配置中定义的容器

示例:

docker-compose down                   # 停止并移除容器和网络
docker-compose down -v                # 同时移除卷
docker-compose down --rmi all         # 同时移除所有镜像

docker-compose start/stop/restart

管理已存在的容器。

docker-compose start/stop/restart [服务名...]

示例:

docker-compose start db web           # 启动db和web服务
docker-compose stop                   # 停止所有服务
docker-compose restart nginx          # 重启nginx服务

构建命令

docker-compose build

构建或重建服务。

docker-compose build [选项] [服务名...]
  • --no-cache: 不使用缓存
  • --pull: 始终尝试拉取新镜像
  • --parallel: 并行构建

示例:

docker-compose build                  # 构建所有服务
docker-compose build --no-cache web   # 不使用缓存构建web服务

docker-compose pull

拉取服务镜像。

docker-compose pull [选项] [服务名...]
  • --ignore-pull-failures: 忽略拉取失败
  • --parallel: 并行拉取
  • --quiet: 不输出信息

示例:

docker-compose pull                   # 拉取所有服务镜像
docker-compose pull redis             # 仅拉取redis镜像

查看命令

docker-compose ps

列出容器。

docker-compose ps [选项] [服务名...]
  • -q, --quiet: 只显示ID
  • --services: 只显示服务名
  • -a, --all: 显示所有容器

示例:

docker-compose ps                     # 列出所有运行中的容器
docker-compose ps -a                  # 列出所有容器(包括已停止的)

docker-compose logs

查看容器输出。

docker-compose logs [选项] [服务名...]
  • -f, --follow: 跟踪日志
  • --tail=N: 显示最后N行
  • --timestamps: 显示时间戳

示例:

docker-compose logs web               # 查看web服务日志
docker-compose logs -f --tail=100 app # 跟踪app服务最后100行日志

docker-compose top

查看容器运行的进程。

docker-compose top [服务名...]

示例:

docker-compose top                    # 显示所有容器的进程
docker-compose top nginx              # 只显示nginx容器的进程

配置命令

docker-compose config

验证并查看compose文件。

docker-compose config [选项]
  • --services: 打印服务名
  • --volumes: 打印卷名
  • --hash="*": 打印配置哈希值

示例:

docker-compose config                 # 验证并输出完整配置
docker-compose config --services      # 只列出服务名

docker-compose images

列出容器所用的镜像。

docker-compose images [服务名...]

示例:

docker-compose images                 # 列出所有服务的镜像

执行命令

docker-compose exec

在运行中的容器内执行命令。

docker-compose exec [选项] 服务名 命令 [参数...]
  • -d, --detach: 后台运行
  • --privileged: 特权模式
  • -u, --user USER: 指定用户
  • --index=INDEX: 指定容器索引

示例:

docker-compose exec web bash          # 在web容器中运行bash
docker-compose exec -u postgres db psql # 以postgres用户运行psql

docker-compose run

在新容器中运行一次性命令。

docker-compose run [选项] 服务名 [命令] [参数...]
  • --rm: 命令完成后移除容器
  • -d, --detach: 后台运行
  • --no-deps: 不启动链接的服务
  • -e KEY=VAL: 设置环境变量

示例:

docker-compose run --rm web npm test  # 运行测试后删除容器
docker-compose run -e DEBUG=1 app     # 设置环境变量并运行app

其他实用命令

docker-compose pause/unpause

暂停/恢复服务。

docker-compose pause/unpause [服务名...]

docker-compose port

显示服务端口映射。

docker-compose port 服务名 私有端口

示例:

docker-compose port web 80            # 显示web服务80端口的映射

docker-compose version

显示Docker Compose版本。

docker-compose version