从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
答案 0 :(得分:5)
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