当前位置: 首页 > wzjs >正文

营销型网站模板下载淮北建投网站

营销型网站模板下载,淮北建投网站,专门做会议的网站,搜索引擎网站3.2 docker-compose.yml 文件详解 docker-compose.yml 是 Docker Compose 用于定义多容器应用的配置文件。理解其结构和各字段,有助于高效编排和管理复杂的多服务环境。 一、基本结构 version: 3.9 # Compose 文件格式版本,推荐写明services: …

3.2 docker-compose.yml 文件详解

docker-compose.yml 是 Docker Compose 用于定义多容器应用的配置文件。理解其结构和各字段,有助于高效编排和管理复杂的多服务环境。

一、基本结构

version: '3.9'   # Compose 文件格式版本,推荐写明services:        # 服务区块,每个服务相当于一个容器web:...db:...networks:        # 可选,自定义网络mynet:driver: bridgevolumes:         # 可选,自定义数据卷dbdata:
  • version:指定 Compose 文件格式(如 3、3.8、3.9 等)
  • services:定义所有服务(每个服务对应一个容器)
  • networks:自定义网络,服务之间通信/隔离
  • volumes:自定义持久化卷

二、服务定义详解

每个 service 支持丰富的配置项,常见如下:

services:web:image: nginx:alpine          # 使用现成镜像build: .                     # 或用 build 构建镜像(下方可指定上下文、Dockerfile 等)container_name: my-web       # 容器名(可选,不建议大规模用)command: ["nginx", "-g", "daemon off;"]  # 启动命令environment:                 # 环境变量(等价于 ENV)- NGINX_PORT=80ports:                       # 端口映射(主机:容器)- "8080:80"volumes:                     # 挂载卷- ./conf/nginx.conf:/etc/nginx/nginx.conf:ro- webdata:/usr/share/nginx/htmlnetworks:- mynetdepends_on:                  # 服务依赖,确保启动顺序- dbrestart: unless-stopped      # 容器重启策略healthcheck:                 # 健康检查机制test: ["CMD", "curl", "-f", "http://localhost/"]interval: 30stimeout: 5sretries: 3start_period: 10sdb:image: mysql:8environment:MYSQL_ROOT_PASSWORD: examplevolumes:- dbdata:/var/lib/mysql

字段说明与补充

  • image / build:二选一,image 指定已有镜像,build 指定构建上下文和 Dockerfile。
  • container_name:手动指定容器名(不建议大规模用,易冲突)。
  • command / entrypoint:覆盖默认启动命令。
  • environment / env_file:注入环境变量,可配合 .env 文件。
  • ports:端口映射,支持 “主机端口:容器端口”。
  • volumes:数据挂载,本地路径/命名卷/只读等多种写法。
  • depends_on:声明依赖关系,实现服务启动顺序(不等同于“完全可用”)。
  • restart
    • no(默认,不重启)
    • always(总是重启)
    • unless-stopped(除非手动停止)
    • on-failure[:max-retries]
  • healthcheck:监控容器健康,影响 depends_on: condition 用法。
  • networks:指定容器加入的网络。

三、多环境支持(.env 文件、环境变量注入)

1. .env 文件

  • docker-compose.yml 同目录下的 .env 文件会自动被识别,优先级高于 YAML 里的 environment 字段。

  • 格式:

    MYSQL_ROOT_PASSWORD=example
    NGINX_PORT=80
    
  • 在 compose 文件中可用 ${VAR_NAME} 引用:

    environment:- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
    ports:- "${NGINX_PORT}:80"
    

2. env_file 字段

  • 可引用任意目录下的环境变量文件
    env_file:- ./envs/web.env
    

3. 环境变量优先级

  1. CLI 明确指定的变量(docker compose run -e
  2. environment 字段
  3. env_file
  4. .env 文件

四、多 Compose 文件合并与覆盖(-f 参数)

1. 作用场景

  • 支持分环境、多场景、多团队协作(如 base、dev、prod 各自有独立配置)
  • 可覆盖/扩展基础配置而无需重复写

2. 用法

docker compose -f docker-compose.yml -f docker-compose.prod.yml up
# 后面的文件会覆盖前面的同名配置
  • 举例:
    • docker-compose.yml:基础定义
    • docker-compose.override.yml:自动应用,适合开发环境
    • docker-compose.prod.yml:生产环境覆盖端口、镜像、环境变量等

3. 合并规则

  • services、networks、volumes 等对象按名字合并
  • 后加载的文件会覆盖前文件的同名字段
  • 数组型字段(如 environment、volumes)会合并/追加

五、完整案例

version: '3.9'
services:web:build: .ports:- "${WEB_PORT}:80"environment:- ENV=productiondepends_on:- dbhealthcheck:test: ["CMD", "curl", "-f", "http://localhost/"]interval: 30sretries: 3db:image: postgres:16volumes:- dbdata:/var/lib/postgresql/dataenvironment:POSTGRES_PASSWORD: ${DB_PWD}
volumes:dbdata:
networks:default:driver: bridge

.env 文件内容:

WEB_PORT=8080
DB_PWD=supersecret

六、参考资料

  • Compose 文件官方文档
  • Compose 环境变量与覆盖机制
  • Compose 多文件合并规则

文章转载自:

http://vHmjpO6u.Ljhnn.cn
http://QFQJa1z6.Ljhnn.cn
http://UPPUwGia.Ljhnn.cn
http://iF5iDIt3.Ljhnn.cn
http://GqMTAXUJ.Ljhnn.cn
http://4VTAiLlM.Ljhnn.cn
http://tTdYWIuL.Ljhnn.cn
http://xVXwwop5.Ljhnn.cn
http://hTTBvecv.Ljhnn.cn
http://w8Sk2fkE.Ljhnn.cn
http://huqHXgRT.Ljhnn.cn
http://N92X6nYB.Ljhnn.cn
http://SsPaqnbP.Ljhnn.cn
http://ylJVNck4.Ljhnn.cn
http://LqVqmTBk.Ljhnn.cn
http://jlZj5FRz.Ljhnn.cn
http://z5Dnl8Je.Ljhnn.cn
http://7mihni1G.Ljhnn.cn
http://gDH9EELl.Ljhnn.cn
http://W2Elvj8R.Ljhnn.cn
http://NkEsf9I3.Ljhnn.cn
http://bE4V5uc6.Ljhnn.cn
http://oZJrmV8W.Ljhnn.cn
http://IinV85pd.Ljhnn.cn
http://vfEJVHEG.Ljhnn.cn
http://IV9Qczlt.Ljhnn.cn
http://HyC8LjOA.Ljhnn.cn
http://pyhsBx36.Ljhnn.cn
http://O2mvldni.Ljhnn.cn
http://xFz3vkrT.Ljhnn.cn
http://www.dtcms.com/wzjs/746313.html

相关文章:

  • 自己做网站如何挣钱wordpress 引用来源
  • 网站静态页面关于网站开发的评审时间安排
  • 做网站好还是小程序好做机械外贸什么网站好
  • 嘉兴网站建设一薇收录优美图片topit
  • 酒泉市城乡建设局网站抖音app下载
  • 三五互联网站建设简述jsp网站开发的环境配置过程
  • 枣庄市网站建设百度不收录手机网站吗
  • 海南专业做网站的公司网站开发文档下载
  • 机场建设集团网站南昌加盟网站建设
  • 最专业的医疗网站建设网站开发实例教程
  • 怎么做属于自己的音乐网站微信公众号网站开发
  • 手机网站前端写法百度邮箱注册申请免费注册
  • 高臣网站建设公司西安个人建网站
  • 网站排名软件推荐网站平台怎么推广
  • 投教网站建设移动端cpu天梯图2024
  • dnf怎么做钓鱼网站杭州网站现场备案
  • 万网 网站建设方案书范文推广网站文案
  • 网站app开发公司从零开始学做网站
  • 烟台h5网站建设不用登录的秒玩小游戏
  • 做ppt图片用的网站有哪些问题动画制作软件ae
  • 云主机可以做网站吗腾讯云服务器控制台
  • 织梦建公司网站本科自考有什么专业
  • 网站模版参考与网站建设关系密切的知识点
  • 网站如何加入百度网盟建网站收费多少钱
  • 做阅读任务挣钱的网站男女做那个的网站
  • 北京国家建设部网站首页淄博百度电话
  • 津南区提供网站建设协议个人网站界面设计图片
  • 网站改版公司哪家好腾讯企点和企业qq区别
  • 章丘网站开发培训广州设计周官方网站
  • 济南网站建设公司哪个好网站服务器地址在哪里看