首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docker containers如何解析同一台机器上运行的其他docker containers的主机名?

docker containers如何解析同一台机器上运行的其他docker containers的主机名?
EN

Stack Overflow用户
提问于 2014-10-09 11:34:08
回答 3查看 12K关注 0票数 5

我已经开始使用docker了,并且很喜欢它,因为Docker容器是一种轻量级的VM。但我无法理解,docker容器如何能够解析彼此的主机名。它们可以使用这些up相互连接,但不能使用它们的主机名,我甚至不能编辑容器中的/etc/hosts来弥补这一点。当我重新启动容器时,它们会获得不同的in,因此我希望使用主机名来代替in来相互通信。比方说,我想在容器中运行Zookeeper集群的Zookeeper实例,并将Zookeeper服务器的主机名放在配置(zoo.cfg)文件中。

EN

回答 3

Stack Overflow用户

发布于 2017-10-25 19:47:21

从docker 1.10开始,如果您创建了一个独立的Docker网络,Docker将使用内部DNS服务器13在容器内解析主机名。您可以通过在docker run内指定一个--name来更改网络主机名。否则,主机名将引用容器id (12个字符的哈希,由docker container ls显示)。

另请参阅:

资料来源:

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

票数 4
EN

Stack Overflow用户

发布于 2014-10-09 16:54:11

查看Docker链接(https://docs.docker.com/userguide/dockerlinks/)可能是值得的。当您链接到正在运行的容器时,将为您希望连接的容器添加一个主机条目。

在他们的例子中,他们展示了

代码语言:javascript
复制
$ sudo docker run -t -i --rm --link db:db training/webapp /bin/bash
root@aed84ee21bde:/opt/webapp# cat /etc/hosts
172.17.0.7  aed84ee21bde
. . .
172.17.0.5  db

正如您在这里看到的,它们将bash中使用的应用程序链接到名为db的容器,随后使用该容器的IP地址为db添加了一个主机条目。

因此,在运行zookeeper的实例中,您只需将启动的容器链接到zookeeper即可。我希望这能帮到你!

票数 3
EN

Stack Overflow用户

发布于 2020-05-15 23:42:23

可以依赖于容器的操作系统,但假设容器运行Linux,您可以这样检查您的DNS配置:

代码语言:javascript
复制
cat /etc/resolv.conf 

它可以返回如下内容:

代码语言:javascript
复制
nameserver 127.0.0.11
options ndots:0

/etc/resolv.conf是类UNIX OS-es中DNS的标准配置文件。在本例中,容器被配置为使用127.0.0.11作为DNS服务器。因此容器可以查询它,以使用它的主机名确定另一个容器的IP地址。您可以使用nslookup命令检查该主机是否实际工作,例如:

代码语言:javascript
复制
nslookup redis 127.0.0.11

,它将联系DNS服务器127.0.0.11并请求解析主机名"redis“。它可以返回如下内容:

代码语言:javascript
复制
Server:    127.0.0.11
Address 1: 127.0.0.11

Name:      redis
Address 1: 172.21.0.3 counter-app_redis_1.counter-app_counter-net 

这意味着主机名将解析为ip 172.21.0.3。

在此特定情况下,通过使用docker-compose.yml配置文件中的以下条目添加了名称服务器条目:

代码语言:javascript
复制
...
networks:
  counter-net:

此根条目配置了由多个docker容器共享的公共网桥网络。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26269870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档