Docker Compose 常用命令详解
Docker Compose 是 Docker 官方提供的一个用于管理多个容器的工具,可以使用 docker-compose.yml
文件定义和运行多容器应用。本篇博客将详细介绍 Docker Compose 的常用命令,帮助你更高效地管理容器。
1. docker compose up
- 启动容器
作用:根据 docker-compose.yml
文件启动并运行所有服务。
常见用法:
# 启动所有服务(如果镜像不存在,会自动构建)
docker compose up
# 后台运行(推荐生产环境使用)
docker compose up -d
示例输出:
Creating network myproject_default with the default driver
Creating myproject_db_1 ... done
Creating myproject_web_1 ... done
2. docker compose down
- 停止并删除容器
作用:停止 docker-compose.yml
运行的所有容器,并删除网络等资源。
常见用法:
# 停止并删除所有容器、网络、卷等
docker compose down
# 停止并删除容器,但保留数据卷
docker compose down --volumes
3. docker compose ps
- 查看运行中的服务
作用:列出当前 docker-compose.yml
启动的所有服务及状态。
用法:
docker compose ps
示例输出:
Name Command State Ports
----------------------------------------------------------------------------
myproject_db_1 docker-entrypoint.sh mysqld Up 3306/tcp
myproject_web_1 python app.py Up 0.0.0.0:5000->5000/tcp
4. docker compose logs
- 查看日志
作用:获取容器日志,帮助排查问题。
常见用法:
# 查看所有服务日志
docker compose logs
# 持续实时查看日志(类似 `tail -f`)
docker compose logs -f
# 查看某个服务的日志
docker compose logs web
5. docker compose start
/ stop
- 启动或停止服务
作用:
docker compose start
启动已创建但停止的容器。docker compose stop
停止正在运行的容器(不会删除)。
用法:
# 启动所有服务
docker compose start
# 启动指定服务
docker compose start web
# 停止所有服务
docker compose stop
# 停止指定服务
docker compose stop db
6. docker compose restart
- 重启服务
作用:重启指定服务或所有服务。
用法:
# 重启所有服务
docker compose restart
# 重启某个服务
docker compose restart web
7. docker compose build
- 构建镜像
作用:
- 当
docker-compose.yml
中的服务需要构建镜像时,使用docker compose build
命令手动构建。 - 可用于更新代码后重新构建镜像。
常见用法:
# 构建所有服务的镜像
docker compose build
# 仅构建某个服务
docker compose build web
# 强制重新拉取依赖镜像并构建
docker compose build --no-cache
8. docker compose exec
/ run
- 运行命令
docker compose exec
- 在运行中的容器中执行命令
用法:
# 在 `web` 服务的容器中打开交互式终端
docker compose exec web bash
# 在 `db` 容器中运行 MySQL 命令行工具
docker compose exec db mysql -uroot -p
docker compose run
- 运行新容器执行命令
用法:
# 运行 `web` 容器的 Python 交互环境
docker compose run web python
区别:
docker compose exec
作用于已有的运行中的容器。docker compose run
启动一个新的容器执行命令。
9. docker compose rm
- 删除容器
作用:删除停止的容器(不会影响数据卷)。
用法:
# 删除所有停止的容器
docker compose rm
# 强制删除所有容器
docker compose rm -f
10. docker compose config
- 验证配置
作用:检查 docker-compose.yml
文件的语法是否正确。
用法:
docker compose config
示例输出:
services:
web:
image: python:3.9
ports:
- 8000:8000
version: '3.8'
11. 组合命令示例
# 停止并删除所有容器
docker compose down
# 构建镜像
docker compose build
# 启动服务(后台模式)
docker compose up -d
# 查看运行状态
docker compose ps
# 进入某个容器终端
docker compose exec web bash
12. 总结
命令 | 作用 |
---|---|
docker compose up | 启动所有服务 |
docker compose down | 停止并删除容器 |
docker compose ps | 查看运行状态 |
docker compose logs | 查看日志 |
docker compose start/stop/restart | 启动/停止/重启服务 |
docker compose build | 构建镜像 |
docker compose exec | 在运行中的容器执行命令 |
docker compose run | 运行新容器执行命令 |
docker compose rm | 删除容器 |
docker compose config | 验证配置文件 |
掌握这些常用命令,可以更高效地管理 Docker Compose 项目!🚀