Pet*_*fel 7 ssl https networking openstack docker
从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
Run Code Online (Sandbox Code Playgroud)
这就是我得到的全部
我无法从docker容器中连接到任何https站点.容器在openstack vm上运行.vm可以通过https连接.
有什么建议?
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):
Run Code Online (Sandbox Code Playgroud)
然后它挂了.
而且,我现在正在获得间歇性的成功.
理智检查:
更改docker ips并不能解决问题
docker容器在我的本地计算机上运行
docker容器在其他云上工作
Docker 1.10.0在vms中不起作用
Docker 1.9.1适用于虚拟机
我得到了Docker社区的解决方案
OpenStack网络似乎使用较低的MTU值,并且自1.10以来 Docker不会从主机的网卡中推断出MTU设置.
要使用自定义MTU设置运行docker守护程序,您可以关注此博客文章,其中说:
$ cp /lib/systemd/system/docker.service /etc/systemd/system/docker.service
Run Code Online (Sandbox Code Playgroud)
在新文件中编辑一行,如下所示:
ExecStart=/usr/bin/docker daemon -H fd:// –mtu=1454
Run Code Online (Sandbox Code Playgroud)
1454的MTU值似乎与OpenStack相同.您可以使用ifconfig在主机中查找.
最后重启Docker:
$ sudo systemctl daemon-reload
$ sudo service docker restart
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2813 次 |
最近记录: |