Docker容器没有连接到https端点
从docker集装箱内,我正在运行
# openssl s_client -connect rubygems.org:443 -state -nbio 2>&1 | grep "^SSL" SSL_connect:before/connect initialization SSL_connect:SSLv2/v3 write client hello A SSL_connect:error in SSLv2/v3 read server hello A
这就是我得到的
我无法连接到Docker容器内的任何https站点。 容器运行在openstack虚拟机上。 虚拟机可以通过https连接。
有什么build议?
UPDATE
root@ce239554761d:/# curl -vv https://google.com * Rebuilt URL to: https://google.com/ * Hostname was NOT found in DNS cache * Trying 216.58.217.46... * Connected to google.com (216.58.217.46) port 443 (#0) * successfully set certificate verify locations: * CAfile: none CApath: /etc/ssl/certs * SSLv3, TLS handshake, Client hello (1):
然后它挂起。
另外,我现在正在获得间歇性的成功。
理智检查:
-
更改dockerips不能解决问题
-
泊坞窗容器在我的本地机器上工作
-
泊坞窗容器在其他云上工作
-
Docker 1.10.0在vms中不起作用
-
Docker 1.9.1在vms中工作
我得到了Docker社区的解决scheme
OpenStacknetworking似乎使用较低的MTU值,并且从1.10开始 ,Docker不会推断来自主机网卡的MTU设置。
要使用自定义MTU设置运行docker守护进程,可以按照以下博客文章的说法:
$ cp /lib/systemd/system/docker.service /etc/systemd/system/docker.service
在新文件中编辑一行,如下所示:
ExecStart=/usr/bin/docker daemon -H fd:// –mtu=1454
1454的MTU是OpenStack似乎常见的值。 你可以在你的主机上使用ifconfig来查看它。
最后重启Docker:
$ sudo systemctl daemon-reload $ sudo service docker restart