以下是 docker-compose
文件的常用字段分类和用途解析,附带简单的范例说明。
1. 基础配置
version
指定docker-compose
文件的版本,例如3.9
是常见的版本。范例:用于定义文件规范的版本。services
定义多个服务,每个服务表示一个容器。范例:包括服务名称、镜像信息和容器配置。
2. 服务相关字段
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
。
3. 网络与资源管理
networks
定义网络,用于服务间通信。范例:可设置bridge
网络驱动。restart
定义容器的重启策略。范例:如always
表示容器总是自动重启。resources
设置容器的 CPU 和内存资源限制。范例:限制 CPU 使用为0.5
个核心。
4. 运行与初始化配置
command
替代容器的默认启动命令。范例:如运行npm start
。entrypoint
覆盖镜像的入口点。范例:如使用自定义脚本/usr/bin/entrypoint.sh
。working_dir
设置容器的工作目录。范例:如/app
。tty
启用伪终端模式。范例:适合需要交互式调试的场景。stdin_open
启用容器的交互模式。范例:如true
。healthcheck
定义容器健康检查。范例:通过curl
检查 HTTP 服务状态。init
使用init
系统处理僵尸进程。范例:如设置为true
。
5. 高级功能
scale
定义服务实例的数量。范例:设置服务副本数为3
。secrets
使用 Docker Secrets 管理敏感数据。范例:如加载文件中的数据库密码。deploy
部署配置,适用于 Docker Swarm。范例:定义服务副本数和更新策略。
6. 全局配置
volumes
定义全局数据卷,供多个服务使用。范例:如db_data
。networks
定义全局网络,支持自定义网络驱动。范例:如app_network
使用bridge
。configs
管理配置文件,类似于secrets
。范例:挂载应用程序配置到容器。
模板:
声明:
本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。