首页 > 解决方案 > 容器内 docker 主机的自定义主机名

问题描述

我的公司最近开始对我们的一些服务进行 docker 化,以便由 dev 中的其他团队进行开发。几个服务与主应用程序对话,主应用程序不会在 docker 中运行,因为这是人们主要开发的对象。这些服务必须通过主机名进行通信;单独的 IP 地址和端口不起作用,因为我们使用子域来确定用户正在与之交谈的帐户。

我知道 docker 公开docker.host.internal了与主机的通信,但我们需要能够指定该主机名,所以这还不够。

我尝试设置一个自定义网络并将其应用于需要回复以获取静态主机 ip 的服务,然后使用 extra_hosts 字段来指定主机名,但还没有达到我可以卷曲该静态的地步来自容器内的 ip。

这是我们的大纲docker-compose.yml

networks:  
  local:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 10.0.0.0/24
          gateway: 10.0.0.1

services:
  myservice:
    build:
      context: ../myservice
    networks:
      - local
    extra_hosts:
      - "myaccount.mycompany.io:10.0.0.1"

在主机上,我们有一个 haproxy 设置来将主机路由到正确的端口。

从 myservice 容器中,curl 10.0.0.1curl myaccount.mycompany.io无法解决,但curl docker.host.internal确实如此。

关于这个设置或我们可以采取的其他方法有什么问题?

谢谢一堆

标签: dockerdocker-composedocker-networkingdocker-network

解决方案


推荐阅读