小编Tar*_*haf的帖子

使用虚拟化网络的 Docker >= 1.10 中的 HTTPS 请求失败

我遇到了一个问题,即无法从版本为 1.10.3 或 1.11.2 的 Docker 容器内部建立 HTTPS 连接。

我尝试了 apt-get、curl 和 wget,但一旦建立了 HTTPS 连接,一切都失败了。

例如,以下命令失败:

$ docker run -it ubuntu-curl curl -v https://www.google.com
[...]
* gnutls_handshake() failed: Error in the pull function.
* Closing connection 0
Run Code Online (Sandbox Code Playgroud)

Docker 映像ubuntu-curl基于ubuntu:latest,唯一的变化是apt-get update ; apt-get install curl.

如果我使用 HTTP 而不是 HTTPs,它会起作用。如果我从主机发出相同的命令,它就可以工作。如果我在没有网络虚拟化(docker run --net="host")的情况下启动容器,它就可以工作。如果我降级 Docker(我尝试了 1.6.2 和 1.9.1),它也能正常工作。

任何提示可能有什么问题?我尝试了两台主机,Ubuntu 14 LTS 和 CoreOS stable,没有相关的定制——都在 OpenStack 集群中运行。

主机的 iptables(虽然我不明白为什么 iptables 应该只阻止 HTTPs 流量):

$ …
Run Code Online (Sandbox Code Playgroud)

https docker

4
推荐指数
1
解决办法
1768
查看次数

标签 统计

docker ×1

https ×1