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