【问题标题】:Docker - Hostname was NOT found in DNS cacheDocker - 在 DNS 缓存中找不到主机名
【发布时间】:2016-08-15 20:38:48
【问题描述】:

我正在使用 Dockerfile 访问我们公司的 Nexus (npm) 服务器以获取“npm install”命令。我看到了:

* Hostname was NOT found in DNS cache
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                             Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 216.xxx.xxx.xxx...
* connect to 216.xxx.xxx.xxx port 443 failed: Connection refused
* Failed to connect to nexus.<something>.com port 443: Connection refused
* Closing connection 0
curl: (7) Failed to connect to nexus.<something>.com port 443:     Connection refused

我可以解析 www.google.com。我可以从我的本地盒子中点击并使用我们的公司 NPM 注册表。似乎只有我们的内部 dns 名称才是问题所在,并且只有在尝试从 docker 容器内部访问它们时。我在 Google 上搜索过,但无法确定我需要做出哪些更改才能解决此问题。

Dockerfile(我已经修剪了不相关的命令):

FROM node:6.3
RUN curl -k -v https://www.google.com
RUN curl -k -vv https://nexus.<something>.com/repository/npm-all/

到 google.com 的 curl 成功。我们内部 repo 的 curl 失败。

我用命令启动它:

docker build .

/etc/resolv.conf 的内容

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#    DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1

我正在运行 Ubuntu 15.10。

解决方案

@BMitch 是正确的。通过添加与您的公司网络关联的 dns 服务器地址来修改 /etc/resolv.conf 的内容。对于 Ubuntu 15+(我正在运行 gnome3),您的配置文件将被网络管理器覆盖,因此无法手动编辑。通过网络管理器 gui 进行更改。打开网络设置,选择 DNS 选项卡并添加服务器。

【问题讨论】:

  • 你能显示你的 Docker 主机的 /etc/resolv.conf 吗?
  • 添加到原始问题中。

标签: docker dns dockerfile


【解决方案1】:

本地 dns 地址是您面临的问题。容器无法从容器内部连接到您的 localhost ip。解决方案是在您的docker run 中传递 DNS 服务器的 IP 地址,或者更新您的 /etc/resolv.conf 以指向非环回 IP 地址。

来自Docker's DNS documentation

过滤是必要的,因为主机上的所有 localhost 地址都是 无法从容器的网络访问。过滤后,如果 容器中没有更多的名称服务器条目 /etc/resolv.conf 文件,守护进程添加公共 Google DNS 名称服务器 (8.8.8.8 和 8.8.4.4)到容器的 DNS 配置。如果 IPv6 是 在守护进程上启用,公共 IPv6 Google DNS 名称服务器将 也可以添加(2001:4860:4860::8888 和 2001:4860:4860::8844)。

注意:如果您需要访问主机的 localhost 解析器,则必须修改主机上的 DNS 服务以侦听非 localhost 可从容器内访问的地址。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-05
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    相关资源
    最近更新 更多