docker compose入门3—docker compose yaml字段详解

news2024/10/9 0:45:20

这是一个整合了几乎所有主要字段的 Docker Compose 示例文件,包括服务定义、卷、网络、Secrets、配置等所有你可能用到的配置项。这个文件模拟了一个 Web 服务、数据库服务、以及如何使用卷、网络、Secrets 和配置。

综合示例 docker-compose.yml

version: '3.8'  # Docker Compose 文件版本

services:
  web:
    image: nginx:alpine  # 使用 nginx:alpine 镜像
    container_name: nginx-container  # 指定容器名称
    build:  # 构建镜像选项
      context: ./web
      dockerfile: Dockerfile.custom
      args:
        APP_VERSION: "1.0"
    ports:
      - "8080:80"  # 将宿主机的 8080 端口映射到容器的 80 端口
    environment:  # 环境变量
      - NGINX_HOST=localhost
      - NGINX_PORT=80
    env_file:  # 加载环境变量文件
      - ./common.env
      - ./web.env
    volumes:  # 挂载卷
      - ./html:/usr/share/nginx/html  # 挂载本地目录
      - web-data:/data  # 使用定义的卷
    networks:  # 网络配置
      - frontend
    depends_on:  # 服务依赖
      - db
    logging:  # 日志配置
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"
    healthcheck:  # 健康检查
      test: ["CMD", "curl", "-f", "http://localhost"]
      interval: 30s
      timeout: 10s
      retries: 3
    secrets:  # 使用 Secrets
      - db_password
    configs:  # 使用配置
      - web_config
    restart: always  # 容器失败时自动重启
    extra_hosts:  # 添加额外的主机名解析
      - "somehost:162.242.195.82"
    dns:  # 自定义 DNS 服务器
      - 8.8.8.8
    dns_search:  # DNS 搜索域
      - example.com
    tty: true  # 分配一个伪终端
    stdin_open: true  # 保持 STDIN 打开

  db:
    image: postgres:13  # 使用 postgres:13 镜像
    container_name: postgres-container
    environment:  # 数据库相关环境变量
      POSTGRES_DB: mydatabase
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
    volumes:  # 数据库卷挂载
      - db-data:/var/lib/postgresql/data
    networks:  # 网络
      - backend
    secrets:  # 使用 Secrets
      - db_password
    restart: always

volumes:  # 定义卷
  web-data:  # Web 服务的数据卷
    driver: local
  db-data:  # 数据库的数据卷
    driver: local
    driver_opts:
      o: "uid=1000,gid=1000"
      type: "nfs"

networks:  # 定义网络
  frontend:
    driver: bridge
  backend:
    driver: bridge
    ipam:
      config:
        - subnet: 172.16.238.0/24
          gateway: 172.16.238.1

secrets:  # 定义 Secrets
  db_password:
    file: ./secrets/db_password.txt  # 从文件加载密码

configs:  # 定义配置
  web_config:
    file: ./config/nginx.conf  # 加载 Nginx 配置文件

文件结构解析

  1. version:指定 Docker Compose 文件版本。

  2. services:定义了两个服务:

    • web 服务:基于 Nginx,暴露 8080 端口,使用 build 构建镜像,挂载卷、使用环境变量文件、依赖 db 服务,并配置健康检查、日志、Secrets 和配置。
    • db 服务:基于 Postgres,使用环境变量指定数据库配置,挂载卷并使用 Secrets。
  3. volumes:定义了两个卷:

    • web-data:用于 Web 服务的数据存储。
    • db-data:用于数据库的数据持久化,并配置了自定义的驱动选项。
  4. networks:定义了两个网络:

    • frontend:前端网络,使用默认桥接驱动。
    • backend:后端网络,配置了 IP 地址分配和网关。
  5. secrets:定义了数据库的密码,以文件形式存储。

  6. configs:为 Web 服务提供 Nginx 的配置文件。


这个文件展示了 Docker Compose 中几乎所有可能用到的字段,是一个集成了服务构建、网络配置、卷挂载、Secrets、配置、日志、健康检查等功能的完整示例。你可以根据自己的应用需求,灵活修改和定制这些字段。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2197610.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

交易所开发:构建安全、高效、可靠的数字资产交易平台

数字资产交易平台是加密市场中连接用户与数字货币的重要枢纽。开发一个安全、高效、可靠的交易所,不仅需要综合考虑技术架构、安全策略、用户体验等方面,还需严格遵循法规要求以确保合规性。本文总结了交易所开发的关键要素,包括其类型、核心…

振弦式土体沉降计有哪些功能特点

振弦式土体沉降计是一种广泛应用于土木工程领域的测量仪器,用于监测土石坝、边坡、地基等构筑物的沉降变形。以下是南京峟思给大家介绍的振弦式土体沉降计的主要优点: 高精度测量: 振弦式土体沉降计采用先-进的感应技术,能够精确地…

一个月学会Java 第5天 控制结构

Day5 控制结构 这么叫可能有些就算有基础的人也看不懂,其实就是if-else、switch-case、for、while、do-while这几个,没基础的听到了这个也不要慌张,这几个是程序的基础,多多训练就好 第一章 顺序结构 这章其实没有什么好讲的&…

Python 工具库每日推荐【openpyxl 】

文章目录 引言Python Excel 处理库的重要性今日推荐:openpyxl 工具库主要功能:使用场景:安装与配置快速上手示例代码代码解释实际应用案例案例:自动生成月度销售报告案例分析高级特性条件格式数据验证扩展阅读与资源优缺点分析优点:缺点:总结【 已更新完 TypeScript 设计…

2024 Mysql基础与进阶操作系列之MySQL触发器详解(20)作者——LJS[你个小黑子这都还学不会嘛?你是真爱粉嘛?真是的 ~;以后请别侮辱我家鸽鸽]

欢迎各位彦祖与热巴畅游本人专栏与博客 你的三连是我最大的动力 以下图片仅代表专栏特色 [点击箭头指向的专栏名即可闪现] 专栏跑道一 ➡️ MYSQL REDIS Advance operation 专栏跑道二➡️ 24 Network Security -LJS ​ ​ ​ 专栏跑道三 ➡️HCIP;H3C-SE;CCIP——…

不容错过的10款文件加密软件,2024顶尖办公文件加密软件分享

随着数据隐私和信息安全越来越受到重视,文件加密已经成为保护个人和企业机密信息的必备工具。无论是敏感的个人文件、财务报表、商业机密,还是政府机密信息,都需要高效的加密工具来确保信息安全不被未经授权的人访问。在2024年,我…

盘点2024年4款打工人都在用的PDF软件。

PDF 软件在现代的办公或者是学习当中的应用非常广泛,已经成了很多人的必备工具。因为PDF 文件具有跨设备、跨系统的优势,所以在很多设备上都可以打开浏览。如果有了PDF 编辑软件,查看,编辑,分享也会变得更加方便简单&a…

web自动化测试基础(从配置环境到自动化实现登录测试用例的执行,vscode如何导入自己的python包)

接下来的一段时间里我会和大家分享自动化测试相关的一些知识希望大家可以多多支持,一起进步。 一、环境的配置 前提安装好了python解释器并配好了环境,并安装好了VScode 下载的浏览器和浏览器驱动需要一样的版本号(只看大版本)。 1、安装浏览器 Chro…

回到原点再出发

原文What Goes Around Comes Around作者Michael Stonebraker & Joseph M. Hellerstein其他译文https://zhuanlan.zhihu.com/p/111322429 1. 摘要 本文总结了近35年来的数据模型方案,分成9个不同的时代,讨论了每个时代的方案。我们指出,…

Vue3入门 - provide和inject组合使用

在Vue3中&#xff0c;provide和inject是用于实现依赖注入的一对API。它们允许在组件树中传递和接收数据&#xff0c;而不需要通过每一层显式地传递props。在<script setup>语法中&#xff0c;provide可以用来提供一个值&#xff0c;而inject可以用来接收一个已经提供的值…

RNN(循环神经网络)简介及应用

一、引言 在深度学习领域&#xff0c;神经网络被广泛应用于各种任务&#xff0c;从图像识别到语音合成。但对于序列数据处理的任务&#xff0c;如自然语言处理&#xff08;NLP&#xff09;、语音识别或时间序列预测等&#xff0c;传统的前馈神经网络&#xff08;Feedforward N…

启明智显工业级HMI芯片Model4功耗特性分享

Model4工业级MPU是国产自主面向工业应用的RISC-V架构的应用级芯片&#xff0c;内置玄铁64bit RISC-V CPU C906&#xff0c;主频高达600MHz&#xff0c;算力约1380DMIPS。支持RTOS、linux系统&#xff0c;支持LVGL工具开发UI&#xff1b; Model4系列工业级MPU具有极强的屏显、多…

每日OJ题_牛客_分组_枚举+二分_C++_Java

目录 牛客_分组_枚举二分 题目解析 C代码 Java代码 牛客_分组_枚举二分 分组 (nowcoder.com) 描述&#xff1a; dd当上了宣传委员&#xff0c;开始组织迎新晚会&#xff0c;已知班里有nnn个同学&#xff0c;每个同学有且仅有一个擅长的声部&#xff0c;把同学们分…

计算机组成原理:物理层 —— 编码与调制

文章目录 基本概念编码&#xff08;基带调制&#xff09;调制编码与调制码元 编码方式双极性不归零编码双极性归零编码曼彻斯特编码差分曼彻斯特编码优缺点 调制方法基本的带通调制方法调频 FM调幅 AM调相 PM 混合调制方法正交振幅调制 QAM-16 基本概念 编码&#xff08;基带调…

全国外卖霸王餐系统对接详细步骤操作?

对接全国外卖霸王餐系统并选择适合的系统时&#xff0c;你可以考虑以下几个步骤和标准&#xff1a; 明确业务需求&#xff1a;首先确定你的平台需要哪些功能&#xff0c;如展示霸王餐选项、下单、支付、订单跟踪等 。选择信誉良好的服务提供商&#xff1a;选择提供稳定服务的A…

【物流配送中心选址问题】基于改进粒子群算法

课题名称&#xff1a; 基于改进粒子群算法的物流配送中心选址问题 改进方向&#xff1a;动态惯性权重优化粒子群算法 代码获取方式&#xff1a; 模型描述&#xff1a; 待补充 Matlab仿真结果&#xff1a; 1. 模型优化后的仿真结果 2. 初始解对应的物流配送路径图 3. 粒子…

大厂最牛的 Java 面试八股文合集(全彩版),不接受反驳

金九银十已然来临&#xff0c;找工作的小伙伴比比皆是&#xff0c;很对小伙伴早早的就开始储备技术&#xff0c;准备面试了。 为了帮助小伙伴更好的应对面试&#xff0c;我拉来十几个大佬&#xff0c;汇总一线大厂的情况&#xff0c;给你整了一套超全的面试资料&#xff1a; 16…

以后再也不要说程序员不能拿诺贝尔了

当地时间10月8日&#xff0c;瑞典皇家科学院宣布&#xff0c;将2024年诺贝尔物理学奖授予美国普林斯顿大学的约翰霍普菲尔德&#xff08;John J. Hopfield&#xff09;和加拿大多伦多大学的杰弗里辛顿&#xff08;Geoffrey E. Hinton&#xff09;&#xff0c;以表彰他们“为推动…

如何通过视觉分析检测车辆逆行行为

随着交通网络的快速扩展和车辆数量的持续增加&#xff0c;城市交通管理面临着前所未有的挑战。交通事故的多发原因之一是车辆逆行&#xff0c;这种行为不仅严重威胁其他车辆和行人的安全&#xff0c;也加重了交通拥堵问题。因此&#xff0c;如何有效监控并预防车辆逆行成为城市…

亲测分享:四款必备PDF编辑工具!

除了本地PDF编辑器之外&#xff0c;也有一些在线PDF编辑工具&#xff0c;它们不仅能够提供便捷的编辑体验&#xff0c;还能实现跨平台的无缝协作。接下来会为大家推荐一些本地PDF编辑器以及在线PDF编辑器&#xff01; Foxit PDF Edit 直达链接&#xff08;复制到浏览器打开&a…