当前位置: 首页 > 面试题库 >

如何通过名称而不是IP地址到达Docker容器?

冯敏达
2023-03-14
问题内容

有没有一种方法可以使用名称而不是IP地址访问我的Docker容器

我听说过管道工作,也看到过一些docker的dns和主机名类型选项,但是我仍然无法将所有内容组合在一起。

感谢您的时间。

我不确定这是否有帮助,但这是我到目前为止所做的:

  • 使用docker-machine和vmwarevsphere驱动程序安装了docker容器主机
  • 用docker-compose启动了所有服务
  • 我可以使用IP和端口从网络上的任何其他计算机访问所有服务

我已将DNS别名条目添加到我的专用网络DNS服务器,它与docker-
machine使用的计算机名称匹配。但是,机器启动并连接到网络时,总是会选择其他IP地址。

我只是在哪里解决这个问题而迷路:

  • 网络DNS服务器
  • docker-机器主机名
  • docker容器主机名
  • 可能是所有这些的某种组合

我可能正在寻找与此问题类似的东西:

如何让docker使用我的网络路由器轻松地将dhcpip分配给容器而不是管道?

任何大致方向都会很棒…再次感谢!


问题答案:

Docker 1.10具有内置的DNS。如果您的容器连接到同一 用户定义的 网络(创建网络docker network create my-network并使用来运行您的容器--net my-network),则它们可以使用容器名称相互引用。(文档)。

凉!

请注意,如果您使用的是Docker compose,您会知道它为容器名称添加了前缀,即<project name>_<service name>-#。这使您的容器名称有些难以控制,但是对于您的用例来说可能没问题。您可以通过在compose模板中手动设置容器名称来覆盖docker
compose命名功能,但是您将无法使用compose进行缩放



 类似资料:
  • 我是的新手,虽然我阅读了基本文档,并尝试部署一个简单的Spring BootAPI,但我可能缺少很多东西 我已经将API部署为.jar文件,然后安装并使用以下命令推送它: 然后使用docker命令启动API: 当我访问localhost:7777/hello时,我得到了所需的响应 这是我的 根据这个应答的命令,发布这个命令以获取 因此,我使用运行它,得到了这个错误 如果我设法获得,我是否能够访问它

  • 假设我有一个名为“mynet”的网络,我想启动一个IP地址绑定到192.168.23.2的容器。 我开始使用的代码是: 我从这里做什么?我正在有效地从中寻找与选项等效的选项。

  • 问题内容: 我有一个用于运行Web应用程序的docker-compose.yml文件。 在我的服务的容器内: 因此,我可以查找Web主机名并将其映射到IP地址,但在文件中看不到它。 如何专门设置这个知道IP地址的容器? 问题答案: Docker提供了DNS服务(搜索“容器之间的自动DNS解析”),而Docker Compose提供了使用它的默认“用户定义”网络 。如果您查看容器内部,它应该指向一个

  • 我必须在ConsumerGroup中设置zookeeper IP地址,而不是Kafka-Host IP地址。因为我将复制因子设置为3,并且创建了3个代理。因此,如果一个主机出现故障,那么另一个主机可以接管。 当我尝试将zookeeper的IP地址而不是Kafka-Host的IP地址放在ConsumerGroup中时,它不会接收到任何来自生产者API的消息。 我希望这样,如果我在ConsumerGr

  • 查尔斯对我来说显示的是IP地址而不是域名。还有其他人看到过这个问题吗?请参阅附加的屏幕截图。

  • 有没有办法让这起作用?修改IP地址(例如)是可以接受的。 我考虑过的事情: > 打开它,并根据IP地址标识所有主机: