【问题标题】:CentOS 6.7 Connection Issues with Docker behind a firewallCentOS 6.7 与防火墙后面的 Docker 的连接问题
【发布时间】:2016-01-28 19:01:37
【问题描述】:

请忽略我在链接和 URL 中的错误空格。我没有发布> 2个网址或2个链接所需的声誉。

我有一个新安装的 CentOS 6.7,如下所示的 uname -a 命令:

Linux 2.6.32-573.7.1.el6.x86_64 #1 SMP Tue Sep 22 22:00:00 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

这台机器位于公司防火墙后面。

我已经安装了 docker-io。版本信息为(docker版本):

客户端版本:1.7.1 客户端 API 版本:1.19 Go 版本(客户端):go1.4.2 Git 提交(客户端):786b29d/1.7.1 操作系统/Arch(客户端):linux/amd64 服务器版本:1.7.1 服务器 API 版本:1.19 Go 版本(服务器):go1.4.2 Git 提交(服务器):786b29d/1.7.1 操作系统/Arch(服务器):linux/amd64

docker 服务正在运行:

docker (pid 2593) 正在运行...

当我跑步时 sudo docker pull hello-world 我得到错误: 获取 https : //index.docker.io/v1/repositories/library/hello-world/images: dial tcp 54.165.23.153:443: connection timed out

当我跑步时 sudo docker run hello-world 我收到类似的错误: 获取 https : //index.docker.io/v1/repositories/library/hello-world/images: dial tcp 52.7.162.45:443: connection timed out

我可以浏览到 URL https : //index.docker.io/v1/repositories/library/hello-world/images 在 Firefox 中(在我输入代理的用户名/密码之后)。我明白了:

[{ “校验和”: “”, “ID”: “3f12c794407e68e515ba7f473a744e748ac8a827a2ea8b33855dec564238b2e5”},{ “校验和”: “”, “ID”: “975b84d108f1024953937167506c2935a081c8c55ae9e9f7b7deee118605367f”},{ “校验和”: “”, “ID”: “535020c3e8add9d6bb06e5ac15a261e73d9b213d62fb2c14d752b8e189b2b912”},{ “校验和”: “”, “ID”: “af340544ed62de0680f441c71fa1a80cb084678fed42bae393e543faea3a572c”},{ “校验和”: “”, “ID”: “a8219747be10611d65b7c693f48e7222c0bf54b5df8467d3f99003611afa1fd8”},{ “校验和”: “”, “ID” : “91c95931e552b11604fea91c2f537284149ec32fff0f700a4769cfd31d7696ae”},{ “校验和”: “”, “ID”: “e45a5af57b00862e5ef5782a9925979a02ba2b12dff832fd0991335f4a11e5c5”},{ “校验和”: “”, “ID”: “31cbccb51277105ba3ae35ce33c22b69c9e3f1002e76e4c736a2e8ebff9d7b5d”},{ “校验和”: “”,“ID “: ”ef872312fe1bbc5e05aae626791a47ee9b032efa8f3bda39cc0be7b56bfe59b9“},{” 校验和 “: ”“, ”ID“: ”7fa0dcdc88de9c8a856f648c1f8e0cf8141a505bbddb7ecc0c61f1ed5e086852“},{” 校验和 “: ”“, ”ID“:” bf16b6e27882c0790071c95326e0186eccd2b8ac2bd5ef34fecd bb332a90926e “},{” 校验和 “: ”“, ”ID“: ”8f5550346e6173730dca712d1fc87e671ae04d5899d6c4290f7897c054b2318e“},{” 校验和 “: ”“, ”ID“: ”f86750113cd23609d504342d39015d5c7f218935b8420dd43b79cd99f4f93960“},{” 校验和“: ”“, ”ID“: “0a1b1cfaa9a2153fdabe163d562fe1321a5c1d1db3a59e0fac7c65f966bc38a9”},{ “校验和”: “”, “ID”: “511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158”},{ “校验和”: “”, “ID”: “2505d942a91db2045278f9d5c58067414d367c02506bbba96f0769a6ac6ad47b”},{ “校验和”: “”, “ID” :“565a9d68a73f6706862bfe8409a7f659776d4d60a8d096eb4a3cbce6999cc2a1”}]

curl www.google.com 和 curl http://www.google.com 工作正常。

当我跑步时: curl -v https://index.docker.io:443

我得到以下信息: * 即将 connect() 到 index.docker.io 端口 443 (#0) * 尝试 54.165.23.153... 连接超时 * 尝试 54.84.122.145... 连接超时 * 尝试 52.7.162.45... 连接超时 * 无法连接到主机 * 关闭连接 #0 curl: (7) 无法连接到主机

根据 Stack Overflow 上的另一篇文章,我已经尝试了 docker run 和 docker pull 在 /etc/default/docker 文件中使用和不使用 http_proxy 和 https_proxy 信息。最初,在 docker-io 安装后没有可用的 /etc/default/docker 文件。这没有帮助。 /etc/default/docker 文件的内容如下所示: http_proxy=http : //代理名称:端口 https_proxy=http : //proxyName:端口

我也尝试过(在 /etc/default/docker 文件中): 导出 http_proxy=http : //proxyName:port 导出 https_proxy=http : //proxyName:port

我今天整天都在谷歌上搜索,试图解决这个问题,但没有取得任何进展。

【问题讨论】:

    标签: docker centos connection-timeout


    【解决方案1】:

    您的问题是您的公司防火墙。这可能无法解决,因为您的公司要求您使用用户名和密码登录 - 您可以使用 firefox 下载图像,我想它正在使用 LDAP 或其他方式为您协商代理。

    您可以尝试在 shell 中设置 http_proxy 和 https_proxy 变量,这可能会根据代理而起作用

    $ export http_proxy=http://server-ip:port/
    $ export http_proxy=http://127.0.0.1:3128/
    $ export http_proxy=http://proxy-server.mycorp.com:3128/
    

    http://www.cyberciti.biz/faq/linux-unix-set-proxy-environment-variable/

    您的公司正在尽量减少任何行为不良的代码进入他们的网络,因此您可能不应该规避这种情况并与您的 IT 部门交谈

    【讨论】:

    • 我的 IT poc 监视 docker 请求来代理。她从未见过代理打来的电话。她得出的结论是,请求直接到达防火墙而不是通过代理,这就是它被丢弃的原因。
    • 我已尝试按照 docker 指令在命令行上设置代理,但没有任何区别。我试过:sudo HTTP_PROXY=http://:/ docker run hello-world。我尝试过的其他变体是 HTTP_PROXY=https://...、HTTPS_PROXY=https://,这些似乎都没有帮助。我还尝试将我的用户名/密码嵌入代理中。不好。
    • 你做了export HTTP_PROXY=...吗?而且它通常是小写的。或者,根据您的预算,您可以使用 artifactory jfrog.com/confluence/display/RTF/… 代理整个 docker hub
    • 我也试过 export http_proxy=.... 没有运气。我可以成功 curl docker run 命令失败的 url。
    • stackoverflow.com/questions/30220728/… 中提出了同样的问题。那里提供的解决方案对我的情况没有帮助。
    猜你喜欢
    • 1970-01-01
    • 2023-04-01
    • 2015-04-17
    • 2018-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-07
    相关资源
    最近更新 更多