docker-compose.yml文件模板和解析

以下是 docker-compose 文件的常用字段分类和用途解析,附带简单的范例说明。

  1. 基础配置
  • version指定 docker-compose 文件的版本,例如 3.9 是常见的版本。范例:用于定义文件规范的版本。

  • services定义多个服务,每个服务表示一个容器。范例:包括服务名称、镜像信息和容器配置。

  1. 服务相关字段
  • image指定容器运行所需的镜像。范例:如 nginx:1.21.6 表示使用 Nginx 指定版本。

  • build用于构建镜像,可以指定构建上下文和 Dockerfile 文件路径。范例:适合需要自定义镜像的场景。

  • container_name定义容器名称,便于管理和调试。范例:如 my_nginx。

  • ports映射主机和容器之间的端口。范例:将主机 8080 映射到容器的 80。

  • volumes挂载数据卷,用于数据持久化或主机与容器间文件共享。范例:挂载主机目录到容器目录。

  • environment定义环境变量,支持数组或键值对格式。范例:设置 NODE_ENV=production。

  • env_file从外部文件加载环境变量。范例:如使用 .env 文件。

  • depends_on设置服务启动顺序。范例:如 web 服务依赖 db 和 redis。

  1. 网络与资源管理
  • networks定义网络,用于服务间通信。范例:可设置 bridge 网络驱动。

  • restart定义容器的重启策略。范例:如 always 表示容器总是自动重启。

  • resources设置容器的 CPU 和内存资源限制。范例:限制 CPU 使用为 0.5 个核心。

  1. 运行与初始化配置
  • command替代容器的默认启动命令。范例:如运行 npm start。

  • entrypoint覆盖镜像的入口点。范例:如使用自定义脚本 /usr/bin/entrypoint.sh。

  • working_dir设置容器的工作目录。范例:如 /app。

  • tty启用伪终端模式。范例:适合需要交互式调试的场景。

  • stdin_open启用容器的交互模式。范例:如 true。

  • healthcheck定义容器健康检查。范例:通过 curl 检查 HTTP 服务状态。

  • init使用 init 系统处理僵尸进程。范例:如设置为 true。

  1. 高级功能
  • scale定义服务实例的数量。范例:设置服务副本数为 3。

  • secrets使用 Docker Secrets 管理敏感数据。范例:如加载文件中的数据库密码。

  • deploy部署配置,适用于 Docker Swarm。范例:定义服务副本数和更新策略。

  1. 全局配置
  • volumes定义全局数据卷,供多个服务使用。范例:如 db_data。

  • networks定义全局网络,支持自定义网络驱动。范例:如 app_network 使用 bridge。

  • configs管理配置文件,类似于 secrets。范例:挂载应用程序配置到容器。

模板:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曼城周杰伦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值