docker-compose配置文件

本文介绍了Docker Compose配置文件的用途,包括如何定义和配置容器的运行环境,如服务名称、镜像、端口映射、环境变量等。还讨论了如何使用多个Compose文件来适应不同环境,并解释了配置文件的合并规则。通过示例展示了一个包含redis、nginx、es等服务的完整配置,涵盖了容器间的依赖、端口映射、数据卷、网络配置等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Docker Compose 配置文件是一个 YAML 格式的文件,用于定义和配置 Docker 容器的运行环境。它包含了容器的名称、镜像、端口映射、环境变量、数据卷等信息,可以通过 docker-compose 命令一次性启动多个容器,实现应用的快速部署和管理。配置文件的编写需要遵循一定的语法规则,可以参考官方文档进行学习和实践。

 多个配置文件
我们可以为同一个项目配置多个compose文件,使用多个 Compose 文件使您能够针对不同的环境或不同的工作流程自定义 Compose 应用程序。

默认情况下,Compose 读取两个文件,docker-compose.yml和一个可选的docker-compose.override.yml文件。按照惯例,docker-compose.yml包含您的基本配置。override.yml 文件,顾名思义,就是包含现有服务或全新服务的配置覆盖。

如果在两个文件中都定义了服务,Compose 会使用 override 进行合并配置。

要使用多个覆盖文件或具有不同名称的覆盖文件,您可以使用该-f选项来指定文件列表。Compose 按照在命令行中指定的顺序合并文件。

  1. # yaml 配置
  2.  # 指定 compose 文件的版本
  3. version: '3'
  4. services:
  5.   redis:
  6.     # 指定 docker 镜像, 可以是远程仓库镜像、本地镜像
  7.     image: redis
  8.     ports:
  9.       - "6379:6379"
  10.     networks:
  11.       - app
  12.   nginx:
  13.     image: nginx
  14.     # 建立宿主机和容器之间的端口映射关系
  15.     ports:
  16.       - 80:80
  17.       - "443:443"
  18.    # 定义容器和宿主机的卷映射关系, 
  19.     volumes:
  20.       - ./nginx/nginx.conf:/etc/nginx/nginx.conf
  21.       - ./nginx/logs:/var/log/nginx
  22.       - ./nginx/html:/usr/share/nginx/myhtml
  23.       - ./nginx/crt:/etc/nginx/crt  
  24.     # 将容器加入指定网络
  25.     networks:
  26.       - app
  27.   es:      
  28.     image: es_ik:1.2 
  29.     ports:
  30.       - "9200:9200"
  31.       - "9300:9300"     
  32.     networks:
  33.       - app     
  34.   mongo-connector:
  35.     image: mongo_connector:1.6  
  36.     volumes: 
  37.       - ./mongo-connect/mongo_es_config_3_20.json:/usr/local/mongo-connector/config/mongo_es_config_3_20.json
  38.       - ./mongo-connect/log:/usr/local/mongo-connector/log  
  39.     # 覆盖容器启动后默认执行的命令, 支持 shell 格式和 [] 格式
  40.     command: 
  41.       - /bin/sh
  42.       - -c
  43.       - | 
  44.           mongo-connector -c /usr/local/mongo-connector/config/mongo_es_config_3_20.json   
  45.     # 定义容器启动顺序 
  46.     depends_on:
  47.       - es 
  48.     networks:
  49.       - app      
  50.   es_head:
  51.     image: mobz/elasticsearch-head:5
  52.     ports:
  53.       - "9000:9100"
  54.     networks:
  55.       - app
  56.     depends_on:
  57.       - es     
  58.   project:
  59.     image: adoptopenjdk/openjdk8
  60.     volumes: 
  61.       - ./workapp:/usr/local/workapp
  62.     ports:
  63.       - 8080:8080    
  64.     command:
  65.       - /bin/sh
  66.       - -c
  67.       - |
  68.           sh /usr/local/workapp/mysh.sh    
  69.     depends_on:
  70.       - es
  71.       - redis
  72.       - nginx  
  73. # 定义 networks 信息    
  74. networks:
  75.   app:
  76.     external: true  
     
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值