gpt4 book ai didi

docker - docker 容器如何解析在同一台机器上运行的其他 docker 容器的主机名?

转载 作者:行者123 更新时间:2023-12-01 00:57:34 25 4
gpt4 key购买 nike

我开始使用 docker 并且喜欢它主要是因为 Docker 容器是一种轻量级的虚拟机。但我无法弄清楚,docker 容器如何能够解析彼此的主机名。他们可以使用那里的 IP 相互连接,但不能使用他们的主机名,我什至无法编辑容器中的/etc/hosts 以某种方式弥补这一点。当我重新启动容器时,它们会获得不同的 IP,因此我想使用主机名代替 IP 来相互通信。假设我想在容器中运行 Zookeeper 集群的 Zookeeper 实例,并且我想将 Zookeeper 服务器的主机名放在配置 (zoo.cfg) 文件中。

最佳答案

截至 Docker 1.10 ,如果您创建一个不同的 docker 网络,Docker 将使用内部 DNS 服务器 [1][2][3] 在容器内解析主机名。
您可以通过使用 --name 指定一个来更改网络主机名。内docker run .否则,主机名将引用容器 ID(12 个字符长的散列,由 docker container ls 显示)。

也可以看看:

  • Docker doesn't resolve hostname
  • When to use --hostname in docker?

  • 资料来源:

    [1] = docker docs - Embedded DNS server in user-defined networks

    [2] = Docker Engine release notes - 1.10.0 (2016-02-04) - Networking

    [3] = Docker pull requests - Vendoring libnetwork

    关于docker - docker 容器如何解析在同一台机器上运行的其他 docker 容器的主机名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26269870/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com