Docker 无法从 openshift 访问注册表

Docker cannot acces registry from openshift

这是我的整个场景。

我有一个 RHEL 7.1 vmware 映像,正确配置了公司代理,通过 http 或 https 访问内容正常。

安装了 docker 引擎,并将 HTTP_PROXY 设置添加到 /etc/systemd/system/docker.service.d/http-proxy.conf。我可以通过执行来验证代理设置是否被选中:

sudo systemctl show docker --property Environment

这将打印:

Environment=HTTP_PROXY=http://proxy.mycompany.com:myport/ 当然是真实值。

拉取和 运行 docker 图像以这种方式正常工作。

目标是使用 openshift-origin 的二进制分布。我下载了二进制文件,并开始按照 github:

上的演练页面进行设置

https://github.com/openshift/origin/blob/master/examples/sample-app/README.md

启动 openshift 似乎可以正常工作: * 通过 openshift cli 登录 * 创建一个新项目 * 甚至访问网络控制台

但是当我尝试在项目中创建一个应用程序时(也是通过 cli):

oc new-app centos/ruby-22-centos7~https://github.com/openshift/ruby-hello-world.git

失败:

error: can't look up Docker image "centos/ruby-22-centos7": Internal error occurred: Get https://registry-1.docker.io/v2/: dial tcp 52.71.246.213:443: connection refused

我可以通过 VM 上的浏览​​器或 WGET 访问(尽管无需身份验证)此端点。

因此我认为 DOCKER 无法获取代理设置。经过一番搜索后,我也担心是否缺少 IPTABLES 设置。参考:

https://docs.docker.com/v1.7/articles/networking/

但我不知道我是否应该 fiddle 使用 IPTABLES 设置,不应该 Docker 自己解决吗?

检查您的 HTTPS_PROXY 环境 属性。