You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Docker Compose中为所有服务统一配置extra-hosts?

在Docker Compose中统一配置所有服务的extra-hosts

你不需要为每个服务单独添加extra-hosts配置,有两种简洁的方式实现统一设置:

方法1:使用扩展字段(Extension Fields)

这是Docker Compose官方推荐的复用配置的方式,通过定义共用的锚点配置,让所有服务引用:

# 定义共用的extra-hosts配置,x-开头是扩展字段,不会被Compose直接解析
x-common-extra-hosts: &common-extra-hosts
  extra_hosts:
    - "host1:1.2.3.4"
    - "host2:5.6.7.8"

services:
  my_service1:
    <<: *common-extra-hosts  # 引用共用配置
    image: nginx:alpine
    # 其他服务配置...
  my_service2:
    <<: *common-extra-hosts  # 引用共用配置
    image: mysql:8.0
    # 其他服务配置...

后续修改extra-hosts时,只需要更新x-common-extra-hosts块即可,所有服务会自动同步。

方法2:使用.env文件定义环境变量

把共用的extra-hosts定义成环境变量,在Compose文件中引用:

1. 创建.env文件

COMMON_EXTRA_HOSTS=host1:1.2.3.4,host2:5.6.7.8

2. 在docker-compose.yml中引用变量

services:
  my_service1:
    image: nginx:alpine
    extra_hosts: ${COMMON_EXTRA_HOSTS}
  my_service2:
    image: mysql:8.0
    extra_hosts: ${COMMON_EXTRA_HOSTS}

这种方式适合需要通过环境变量动态调整配置的场景,修改.env文件就能更新所有服务的extra-hosts。

注意:两种方法都适用于Docker Compose 3.x及以上版本,选择哪种取决于你的配置管理习惯。

内容的提问来源于stack exchange,提问作者Sudden Che

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 04:34:55