首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头容器中与主机不同的dns条目

码头容器中与主机不同的dns条目
EN

Stack Overflow用户
提问于 2017-08-17 10:26:47
回答 2查看 2.2K关注 0票数 0

当我从我的Ubuntu系统中选择一个URL时,它会正确地解析到所需服务器的IP。当我在容器中做同样的事情时,它会解析成其他IP (我认为这是一个旧的DNS条目)。

有谁知道为什么会发生这种情况,以及如何解决?

更新

我使用以下命令运行容器:

代码语言:javascript
复制
docker run -it -v $(pwd):/data-storage dotnet-testbed /bin/bash

点击谷歌的作品:

代码语言:javascript
复制
PING google.com (172.217.19.174): 56 data bytes
64 bytes from 172.217.19.174: icmp_seq=0 ttl=54 time=4.537 ms

点击myUrl显示出错误的ip并被卡住:

代码语言:javascript
复制
PING myUrl (**.***.***.**): 56 data bytes
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-17 11:21:04

您可能会发现以下技术对于研究Docker容器如何解析宿主…很有用

搜索主机数据库

代码语言:javascript
复制
 docker run alpine getent hosts stackoverflow.com       
151.101.1.69      stackoverflow.com  stackoverflow.com

检查主机文件

代码语言:javascript
复制
 docker run alpine cat /etc/hosts
127.0.0.1   localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.3  6a431f90415d

检查由docker run --add-host显式添加到容器的主机文件中的主机

代码语言:javascript
复制
 docker run --name=my_cool_container -i -d --add-host stackoverflow.com:127.0.0.1 alpine sh
 docker inspect -f '{{range $index, $value := .HostConfig.ExtraHosts}}{{$value}}
{{end}}' my_cool_container
stackoverflow.com:127.0.0.1

但也许这和码头无关。您应该在容器内运行ifconfig,并检查它的DNS服务器是否与主机的相同。您也可以使用dig来检查它收到的DNS应答。

如果这是容器中的“旧DNS条目”(容器通常是短暂的),我会感到非常惊讶。如果是这样的话:您可以通过重新部署容器来修复这个问题(或者学习如何清除它的DNS缓存)。

最有可能的是:您的主机使用某些代理,但容器不使用。默认情况下,Docker容器使用网桥网络。如果您使用联网:容器将使用主机的网络堆栈。这可能足以使它从您的代理中受益。

票数 1
EN

Stack Overflow用户

发布于 2017-08-17 11:07:22

你是幕后代理吗?.可以将http_proxy设置为容器中的环境变量。或作为建造大厦的论据通过。

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

https://stackoverflow.com/questions/45732627

复制
相关文章

相似问题

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