按主机名列出的远程Docker容器

按主机名列出的远程Docker容器,docker,docker-compose,Docker,Docker Compose,如何通过主机名访问远程Docker容器 出于开发和测试的目的,我需要通过远程Docker容器的主机名(或一些常量IP)访问远程Docker容器。我试过: 寻找任何DNS方法(未发现任何线索) 导入/ets/主机(可能不可能) 创建tunnes(仅此方法有效,但非常耗时) 这与在主机上运行任何其他进程(Docker或非Docker)相同:您可以通过主机名或IP地址以及服务侦听的端口(Docker run-p参数的第一个端口)访问它。Docker容器不像非Docker HTTP或ssh守护进程那样

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

出于开发和测试的目的,我需要通过远程Docker容器的主机名(或一些常量IP)访问远程Docker容器。我试过:

  • 寻找任何DNS方法(未发现任何线索)
  • 导入/ets/主机(可能不可能)
  • 创建tunnes(仅此方法有效,但非常耗时)

这与在主机上运行任何其他进程(Docker或非Docker)相同:您可以通过主机名或IP地址以及服务侦听的端口(Docker run-p参数的第一个端口)访问它。Docker容器不像非Docker HTTP或ssh守护进程那样具有外部可见的单个IP地址

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

一种可能对您有所帮助的解决方案是某种服务注册;在过去,我曾成功地使用过。您可以使用一些运行状况检查或其他探测来配置Concur(“在端口12345上查找一个HTTP服务,该服务用于应答GET/调用”),它将提供自己的DNS服务(“好的,
http://whatevername.service.consul:12345/
将在您的服务运行的主机上到达您的服务”)

Docker基础设施中没有任何内容专门帮助实现这一点。使用
/etc/hosts
显然不是最佳做法:名称到IP的映射需要在所有机器上保持同步,您会开始希望有一个网络服务为您发布它,这正是DNS的用途