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

如何在Docker daemon全局配置--add-host=docker01.company.lan:host-gateway?

全局配置Docker添加docker01.company.lan:host-gateway映射的可行性及替代方案

核心问题

能否通过/etc/docker/daemon.json等全局配置文件,设置--add-host=docker01.company.lan:host-gateway,无需在每个容器或Stack中手动添加extra_hosts?

需求背景

公司内部使用搭载Eureka的Java容器,需要通过Docker主机名加端口的方式动态访问服务。当前仅能在Stack配置中添加extra_hosts作为临时解决办法,若能在各Docker主机上全局配置该host映射,可显著降低重复配置的工作量。

复现环境

  • 操作系统:Ubuntu 22.04
  • Docker版本:20.10.12,build e91ed57

测试验证示例

不生效的配置(未手动添加extra_hosts)

version: '3'
services:
  nginx:
    image: nginx:alpine
    ports:
      - '30004:80'
  busybox:
    image: busybox
    command: "watch -n 5 wget --spider http://docker01.company.lan:30004"

生效的配置(手动添加extra_hosts)

version: '3'
services:
  nginx:
    image: nginx:alpine
    ports:
      - '30004:80'
  busybox:
    image: busybox
    extra_hosts:
      - docker01.company.lan:host-gateway
    command: "watch -n 5 wget --spider http://docker01.company.lan:30004"

结论与替代方案

目前Docker官方不支持在daemon.json中直接配置host-gateway类型的全局host映射。daemon.json里的add-host配置仅接受静态IP值,无法识别host-gateway这个特殊标识(该标识会在容器启动时动态解析为主机的网关IP)。

如果要实现近似全局生效的效果,可采用以下两种替代方式:

  1. 静态IP全局映射
    在所有Docker主机上固定自身IP,修改/etc/docker/daemon.json添加静态映射:

    {
      "add-host": ["docker01.company.lan:192.168.1.100"]
    }
    

    配置完成后重启Docker服务:systemctl restart docker。注意:此方式依赖主机IP固定,若主机IP动态变化则会失效。

  2. Compose扩展字段复用配置
    通过Docker Compose的扩展字段(以x-开头)定义通用的extra_hosts配置,在各Stack中引用即可:

    x-common-extra-hosts: &common-extra-hosts
      extra_hosts:
        - docker01.company.lan:host-gateway
    
    version: '3'
    services:
      nginx:
        image: nginx:alpine
        ports:
          - '30004:80'
      busybox:
        image: busybox
        <<: *common-extra-hosts
        command: "watch -n 5 wget --spider http://docker01.company.lan:30004"
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 12:17:14