标签: docker-machine

了解 DNS 解析器之间的区别

介绍

在尝试调试网络问题本地我们的内联网,很明显,curl host nslookupdig不同的表现。凡dighost返回有问题的URL,IP地址curlnslookup回报:

 curl: (6) Could not resolve host: internal.site.company.com
Run Code Online (Sandbox Code Playgroud)

 nslookup: can't resolve 'internal.site.company.com`
Run Code Online (Sandbox Code Playgroud)

语境

虽然这不应该的事情,在多予方面的问题的本质,这个问题上和后面发生的docker-machine(使用泊坞窗机上都进行测试virtualbox,并parallels要准确)。在docker-machine和容器它的主机都在他们所需的内部DNS服务器的正确IP地址/etc/resolv.conf。无法解析名称的机器也可以访问所需 URL 的 IP 地址。如上所述,地址是内部站点,我们的 DNS 服务器也是内部站点。该站点可从docker-machine安装的计算机访问和解析。

问题

这让我想到了这些问题......

1) 在幕后,有什么dighost做的与两者cURL和和不同nslookup

2)什么可能阻止浏览器或curl以两种方式解析 URLhostdig成功解析名称?

设置

dig -vDiG 9.11.1

host -vhost 9.11.1

curl …

domain-name-system linux-networking curl dig docker-machine

7
推荐指数
1
解决办法
1512
查看次数

Docker + Nginx + PHP-FPM 错误:[emerg] 1#1: 在上游找不到主机

我有一个从这个 repo克隆的 LEMP 堆栈的 docker 设置。

在运行窗口 10 的开发机器上一切正常,但是当我将图像推送到 docker hub 并将其拉到我的 VPS 上时,无论我做什么,我总是收到此错误:

[emerg] 1#1: host not found in upstream "php-fpm:9000" in /etc/nginx/conf.d/upstream.conf:1
Run Code Online (Sandbox Code Playgroud)

此错误来自两个文件。

第一: 来自这个 Nginx Docker 文件

这是代码:

RUN echo "upstream php-upstream { server ${PHP_UPSTREAM_CONTAINER}:${PHP_UPSTREAM_PORT}; }" > /etc/nginx/conf.d/upstream.conf \
&& rm /etc/nginx/conf.d/default.conf
Run Code Online (Sandbox Code Playgroud)

第二个 来自这个 Nginx default.conf 文件

这是代码:

    location ~ \.php$ {
      ...
      fastcgi_pass php-upstream;
      ...
    }
Run Code Online (Sandbox Code Playgroud)

我说这两个文件是 b/c 其他地方没有引用 php-upstream 的原因。

我已经尝试了添加/删除主机、添加depends_on、更改 nginx、php 版本、禁用 selinux 的所有可能组合,但它不起作用。我总是在生产中遇到相同的错误,但在本地服务器上一切正常。

nginx php-fpm docker docker-compose docker-machine

6
推荐指数
1
解决办法
2万
查看次数

Docker 网络 IPv6 暴露

我正在运行一个小臂板,在我们的本地网络内提供一些服务。当我尝试了解 docker 对 ipv6 的支持时,我对第一次测试的结果感到非常困惑。

我的网络由使用 dhcpv6 的单个路由控制,每个客户端都有 2 个有效的全局 ipv6 地址(还有 1 个本地 ipv4),并受到路由器防火墙的保护(不允许从互联网到客户端的请求)。

Arm 板运行的是 ubuntu 16.04,具有有效的 ipv6 地址并启用了隐私扩展。

所有docker容器都使用默认的桥接网络,没有任何调整。

在docker主机上

netstat -tulpen|grep docker
Run Code Online (Sandbox Code Playgroud)

节目

tcp6       0      0 :::8080                 :::*                    LISTEN      0          22490       1559/docker-proxy
Run Code Online (Sandbox Code Playgroud)

没有一个 ipv4 服务正在侦听。

在这个 docker 容器内,相同的 netstat 请求给出

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      0          23955       8/nginx         
tcp6       0      0 :::80                   :::*                    LISTEN      0          23956       8/nginx  
Run Code Online (Sandbox Code Playgroud)

Nginx 正在侦听 ipv6 和 ipv4 - 端口 80 暴露给端口 8080

docker run (...) -p 8080:80 (...) 
Run Code Online (Sandbox Code Playgroud)

检查桥接网络

docker …
Run Code Online (Sandbox Code Playgroud)

ipv6 port-forwarding netstat docker docker-machine

3
推荐指数
1
解决办法
5082
查看次数