按主机名的远程Docker容器

时间:2018-11-12 23:35:46

标签: docker docker-compose

如何通过其主机名访问远程Docker容器?

我需要通过主机名(或某些恒定IP)访问远程Docker容器,以进行开发和测试。我尝试过:

  • 寻找任何DNS方法(尚未找到任何线索)
  • 导入/ ets / hosts(可能是不可能的)
  • 创建音调(仅此方法有效,但是非常耗时)。

1 个答案:

答案 0 :(得分:0)

与在主机上运行任何其他进程(无论是否在Docker上)相同:您可以通过主机的主机名或IP地址以及服务正在侦听的端口({{1的第一个端口}}参数)。与非Docker HTTP或ssh守护程序相比,Docker容器没有在外部可见的单个IP地址。

如果确实有可用的DNS基础结构,则可以设置CNAME记录以将特定的服务名称解析为运行它们的特定主机。

一种可以帮助您的解决方案是某种服务注册中心。过去,我使用Consul取得了一些成功。您可以使用一些运行状况检查或其他探针来配置Consul(“在端口12345上寻找可响应GET /调用的HTTP服务”),它将提供自己的DNS服务(“好吧,docker run -p将到达您的服务在任何主机上运行”)。

Docker基础架构中没有任何东西可以专门帮助您。使用http://whatevername.service.consul:12345/显然不是最佳实践:名称到IP的映射需要在所有计算机上保持同步,并且您会开始希望您拥有网络服务来为您发布它,这正是DNS是用于。