如何通过其主机名访问远程Docker容器?
我需要通过主机名(或某些恒定IP)访问远程Docker容器,以进行开发和测试。我尝试过:
答案 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是用于。