Docker: compose-file配置参数整理

本文深入解析Docker Compose配置文件的结构与参数,包括service、volume、network等核心对象,帮助理解如何高效配置与管理Docker服务。

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

官网对于compose file写法的说明
https://github.com/docker/docker.github.io/blob/master/compose/compose-file/index.md

看了两遍官文,参数很多,容易乱,对其中的参数自己做了关系梳理
总的来说有这个几个配置对象(估且叫对象吧)
docker compose 几大对象 service ,volume ,network ,config ,secrets

Service
 -build
     -context
     -dockerfile
     -args
     -labels
     -shm_size
     -cache_from
     -target
     -cap_add, cap_drop
     -cgroup_parent
     -command
 -container_name
 -credential_spec
 -depends_on
 -deploy
     -endpoint_mode
     -lables
     -mode
     -placement
     -replicas
     -resources
     -restart_policy
 -dns
 -dns_search
 -entrypoint
 -env_file
 -environment
 -expose
 -external_links
 -extra_hosts
 -healthcheck
 -image
 -init
 -isolation
 -logging
 -network_mode
 -networks
 -aliases
 -ipv4_address,ipv6_address
 -pid
 -ports
 -restart
 -security_opt
 -stop_grace_period
 -stop_signal
 -sysctls
 -tmpfs
 -userns_mode
 -
Volume
 -driver
 -driver_opts
 -external
 -labels
 -name
 -
Network
 -driver
 -driver_opts
 -attachable
 -enable_ipv6
 -ipam
 -internal
 -labels
 -external
 -name
 -
 -
   
configs
 -rollback_config
 -update_config
secrets
 -
 -

compose配置文件里面都是围绕service做配置的 ,单独拉出来的volume/network/config/secrets 是给各个service都可以使用的 ,定义在特定service中的熟悉是给对应的service使用。
梳理了参数关系,心里就有数了,对应的具体参数用法再去看官网,比较清楚。

### 启动指定的 Docker Compose 配置文件 为了启动名为 `docker-compose-base.yml` 的特定 Docker Compose 文件中的服务,可以使用 `-f` 参数来指定自定义配置文件的位置和名称。以下是实现此操作的具体方法: 通过运行以下命令,能够加载并启动指定的 `docker-compose-base.yml` 文件中的服务: ```bash docker compose -f docker-compose-base.yml up -d ``` 在此命令中,`-f` 或者 `--file` 参数指定了要使用的 Compose 文件[^1]。而参数 `up` 表示创建并启动容器,附加参数 `-d` 则表示以后台模式运行这些容器。 如果需要验证服务是否成功启动,可以通过如下命令检查正在运行的容器状态: ```bash docker compose -f docker-compose-base.yml ps ``` 此外,当完成工作需清理环境时,可利用以下指令停止并移除由该 YAML 文件所定义的服务及其相关资源: ```bash docker compose -f docker-compose-base.yml down ``` 以上过程涵盖了从启动到管理整个生命周期的操作指南[^2]。 ### 使用共享卷的例子 假设在 `docker-compose-base.yml` 中存在类似于下面这样的配置片段,则说明已预设了一个可供不同服务间共用的数据存储区域: ```yaml version: '3' services: web: image: nginx volumes: - shared-data:/usr/share/nginx/html db: image: mysql volumes: - shared-data:/var/lib/mysql volumes: shared-data: ``` 这里展示了如何提前声明一个名为 `shared-data` 的卷,并将其挂载至两个独立的服务内部目录下以便于数据交互或持久化保存[^3]。 #### 注意事项 确保目标机器上有安装支持最新版 Compose File Format 的 Docker Engine 及其配套工具链;同时确认所提供的 `.yml` 文件语法无误并通过测试验证阶段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值