Docker容器未连接到https端点

时间:2016-02-09 19:23:10

标签: ssl networking https docker openstack

从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 vm上运行。虚拟机可以通过https连接。

有什么建议吗?

更新

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):

然后它就会挂起。

此外,我现在正在获得间歇性的成功。

完整性检查:

  • 更改docker ips无法解决问题

  • docker容器在我的本地计算机上运行

  • docker容器适用于其他云端

  • Docker 1.10.0在vms中不起作用

  • Docker 1.9.1适用于vms

1 个答案:

答案 0 :(得分:5)

Docker community

给了我一个解决方案

OpenStack网络似乎使用较低的MTU值,而Docker不会从主机的网卡since 1.10推断出MTU设置。

要使用自定义MTU设置运行docker守护程序,您可以关注this blog post,其中包含:

$ 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