Skip to content

Docker Compose

https://vuepress.mirror.docker-practice.com/compose/

https://docs.docker.com/compose/install/

Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速的部署分布式应用。

定义和运行多个 Docker 容器的应用(Defining and running multi-container Docker applications)

Compose 中有两个重要的概念:

  • 服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
  • 项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。

安装:https://vuepress.mirror.docker-practice.com/compose/install/

命令

sh
# 查看版本
docker compose -v
sh
docker compose down

# 停止并删除容器,网络,卷和镜像
docker compose down -v

# 启动服务
# -d 让其可以在后台运行
docker compose up -d

# 查看启动的详细日志
docker compose --verbose up

-f, --file 指定 Compose 模板文件,有时候很好用,如:

sh
docker-compose -f /opt/nginx/docker-compose.yml restart

-p, --project-name 指定项目名称,默认为当前目录名称

sh
# 验证配置文件是否正确
docker compose config

docker compose build 只构建镜像,不启动。
docker compose up 构建镜像并启动容器。

字段说明

简写

yml
volumes:
  db_data:

# 等同于
volumes:
  db_data:
    driver: local
yml
networks:
  db_network:

networks:
  db_network:
    driver: bridge

全局

都需要自己提前创建

sh
docker volume create db_data

docker network create shared_net

然后使用 external

yml
volumes:
  db_data:
    external: true

networks:
  shared_net:
    external: true

services env_file

将某个 文件 注入

yml
services:
  web:
    image: nginx
    env_file:
      - .env

services depends_on

表示依赖于其他服务,启动时会先启动依赖的服务。