2017-08-11 34 views
0

我试图从默认的注册表下载一个容器图像用命令:如何从默认码头注册表下载图片?

docker run -d --name=nginx -p 80:80 nginx:alpine 

输出是:

无法找到像“nginx的:高山”本地 泊坞窗:从后台程序错误响应:获取https://registry-1.docker.io/v2/:x509:由未知权威机构签署的证书。 请参阅“码头运行 - 帮助”。

我已经用cntlm配置了代理。我背后的企业防火墙与深入检查包(DIP,男子在中间)

我可以定义默认注册表(https://registry-1.docker.io/v2/)像一个不安全的注册表吗?怎么样?还有另一种解决方案? 我已经尝试了以下选项:

--insecure-registry=registry-1.docker.io:5000 
--insecure-registry=registry-1.docker.io 
--insecure-registry='*' 
--insecure-registry=https://registry-1.docker.io/v2/ 
+0

您是否执行了此处记录的所有代理步骤:https://docs.docker.com/engine/admin/systemd/? – yamenk

+0

是的,我已经做了这些步骤。我的/etc/systemd/system/docker.service.d/http-proxy.conf的内容是: [Service] Environment =“HTTP_PROXY = http:// localhost:3128 /”“NO_PROXY = localhost,127.0。 0.1“ 此配置部分起作用,显然doker可以访问注册表,但由于企业防火墙,它无法验证注册表中签名的内容。 –

+0

如果您运行docker info,它是否显示不安全列表中的注册表服务器? – BMitch

回答

1

问题已解决。

我的SO是薄荷(基于Ubuntu的xenial)和泊坞窗版本17.06.0策

要解决,我需要做把从我公司的防火墙的根证书到我的Linux CA证书(参考1 - https://askubuntu.com/questions/73287/how-do-i-install-a-root-certificate )。 Obs .:已经使用cntlm配置的代理(参考2 - http://cntlm.sourceforge.net/)(参考3 - https://docs.docker.com/engine/admin/systemd/

首先我导出安装在我的浏览器中的证书,google chrome。从铬a选择配置 - >高级 - >隐私和安全 - >管理证书 - >受信任的根证书颁发机构,所以我选择了权限,在我的情况下,像mycompany.com。之后,我选择export-> advance,选择X.509 base64格式(* .cer)。正确的格式非常重要。我保存了〜/ certificate.crt文件。 创建一个额外的目录:

sudo mkdir /usr/share/ca-certificates/extra 

复制证书额外的目录:

sudo cp ~/certificate.crt /usr/share/ca-certificates/extra 

更新CA证书配置:

sudo dpkg-reconfigure ca-certificates 

重启泊坞窗:

sudo systemctl daemon-reload 

sudo systemctl restart docker 

现在停靠呃可以从默认注册表下载图片。

+0

文件certificate.cer必须是certificate.crt才能执行dpkg-reconfigure命令 –