linux下用docker Compose管理多容器应用的核心是编写docker-compose.yml文件并执行相应命令:先安装二进制版docker-compose,再定义version、services、networks、volumes等字段,最后用up、ps、restart、down、exec等命令统一管控服务。

Linux 下用 Docker Compose 管理多容器应用,核心是写好 docker-compose.yml 文件,再用几条命令启动、停止、查看——不依赖手动逐个运行容器,也不用记一堆 docker run 参数。
准备:安装与基础结构
Docker Compose 默认不随 Docker 安装,需单独获取。推荐使用官方二进制方式(稳定且版本可控):
- 下载对应架构的
docker-compose二进制文件(如docker-compose-linux-x86_64) - 重命名为
docker-compose,赋予可执行权限:chmod +x docker-compose - 移动到
/usr/local/bin/,确保全局可用
项目目录下新建 docker-compose.yml,这是整个编排的“蓝图”,定义服务、网络、卷等。
编写 docker-compose.yml 关键点
YAML 格式敏感,注意缩进(必须用空格,不能用 Tab)。常用字段包括:
- version:指定 Compose 文件格式版本,生产环境建议用
'3.8'或更高 - services:每个子项是一个容器服务,如
web、db,内含image、ports、volumes、environment等 - networks:定义自定义网络,让服务间通过服务名互通(如
db可直接被web用db:5432访问) - volumes:声明命名卷或绑定挂载,用于持久化数据或共享配置
示例片段:
version: '3.8'<br>services:<br> web:<br> image: nginx:alpine<br> ports: ["8080:80"]<br> depends_on: [db]<br> db:<br> image: postgres:14<br> environment:<br> POSTGRES_PASSword: example
常用操作命令(在 docker-compose.yml 同级目录执行)
- 启动全部服务:
docker-compose up -d(-d后台运行) - 查看运行状态:
docker-compose ps或docker-compose logs -f web(实时看某服务日志) - 重启某个服务:
docker-compose restart db - 停止并清理:
docker-compose down(删容器、网络;加-v可删关联卷) - 进入容器调试:
docker-compose exec web sh(类似docker exec -it <id> sh</id>)
进阶提示:环境隔离与复用
同一套 docker-compose.yml 可适配不同环境:
- 用
.env文件定义变量(如DB_HOST=db),YAML 中用${DB_HOST}引用 - 通过
-f指定多个文件组合,例如:docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d,后者覆盖生产相关配置 - 服务可设
scale(如web:3)快速扩缩容,适合测试负载场景
基本上就这些。写清楚服务依赖和端口映射,再配合几个命令,就能稳稳管住多个容器了。