💓 博客主页:瑕疵的CSDN主页
📝 Gitee主页:瑕疵的gitee主页
⏩ 文章专栏:《热点资讯》
使用Docker Compose构建多容器应用
- 引言
 - Docker Compose 简介
 - 安装 Docker Compose
 - 创建基本配置
 - 运行多容器应用
 - 查看服务状态
 - 停止和删除服务
 - 高级用例
 - 环境变量
 - 多环境配置
 - 自定义网络
 
- 实际案例
 - 总结
 
docker-compose.yml 文件和常见用例等内容。 
 
 
Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过一个 YAML 文件( 
docker-compose.yml),你可以配置应用程序的服务。然后,使用一个命令,就可以从配置中创建并启动所有服务。 
 
 
在使用 Docker Compose 之前,需要确保已经安装了 Docker。然后,可以使用以下命令安装 Docker Compose: 
 
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
 
 
在项目根目录下创建一个 
docker-compose.yml 文件,编写一个基本的 Docker Compose 配置。假设我们有一个简单的 Web 应用,包含一个 Web 服务和一个数据库服务: 
 
version: '3.8'
services:
  web:
    build: ./web
    ports:
      - "5000:5000"
    depends_on:
      - db
  db:
    image: postgres:latest
    environment:
      POSTGRES_USER: example
      POSTGRES_PASSWORD: example
      POSTGRES_DB: example
    volumes:
      - db_data:/var/lib/postgresql/data/
volumes:
  db_data:
 
 
使用以下命令启动多容器应用: 
 
docker-compose up
 
这将根据 docker-compose.yml 文件中的配置启动所有服务。你可以使用 -d 参数在后台运行服务:
docker-compose up -d
 
 
使用以下命令查看服务的状态: 
 
docker-compose ps
 
 
使用以下命令停止并删除所有服务: 
 
docker-compose down
 
 
 
Docker Compose 支持使用环境变量来配置服务。你可以在 
.env 文件中定义环境变量,并在 
docker-compose.yml 文件中引用它们: 
 
version: '3.8'
services:
  web:
    build: ./web
    ports:
      - "${WEB_PORT}:5000"
    depends_on:
      - db
  db:
    image: postgres:latest
    environment:
      POSTGRES_USER: ${DB_USER}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_DB: ${DB_NAME}
    volumes:
      - db_data:/var/lib/postgresql/data/
volumes:
  db_data:
 
 
Docker Compose 支持多环境配置。你可以在不同的文件中定义不同的配置,并使用 
-f 参数指定多个配置文件: 
 
docker-compose -f docker-compose.yml -f docker-compose.override.yml up -d
 
 
Docker Compose 支持自定义网络,可以更好地管理服务之间的通信: 
 
version: '3.8'
networks:
  mynet:
services:
  web:
    build: ./web
    ports:
      - "5000:5000"
    networks:
      - mynet
  db:
    image: postgres:latest
    environment:
      POSTGRES_USER: example
      POSTGRES_PASSWORD: example
      POSTGRES_DB: example
    volumes:
      - db_data:/var/lib/postgresql/data/
    networks:
      - mynet
volumes:
  db_data:
 
 
Docker Compose 已经被广泛应用于各种多容器应用场景,例如: 
 
- 微服务架构:构建复杂的微服务应用,管理多个服务的依赖关系。
 - 开发环境:快速搭建和管理开发环境,提高开发效率。
 - 测试环境:构建隔离的测试环境,确保测试的可靠性和一致性。
 
 
 
Docker Compose 支持多环境配置和自定义网络,可以更好地管理服务之间的通信。
 


















