根据我的公司政策,我们使用Windows 7,在计算机上具有特权访问权限(管理员权限的子集)。
我已经安装了docker工具箱,但是当它从公司Artifactory的Docker中心提取图像的时候因为HTTPS和代理而遇到了问题。
我终于想出了如何在使用HTTPS证书的企业代理后面的Windows 7上设置docker工具箱的方法。
以下是步骤
{ "HostOptions": { ... "EngineOptions": { ... "Env": [ "HTTP_PROXY=http://<username>:<pwd>@<host>:<port>", "HTTPS_PROXY=http://<username>:<pwd>@<host>:<port>", "NO_PROXY=<docker-machine ip>" ], } } }
请注意HTTPS_PROXY中的http。 4.完成上述步骤后,您需要安装公司证书5.获取企业根证书集,该证书应安装在公司配置的浏览器中。在Chrome中,您可以转到“设置”,单击“显示高级设置”,然后向下滚动到“HTTPS / SSL”,您可以在其中选择“管理证书”。我的组织已将它们放在Trusted Root Cerftification Authority中,并在组织之后命名。导出每个(我有两个),一次一个,确保选择DER格式。
openssl x509 -inform der -in certificate.cer -out certificate.pem
MINGW64:$ docker-machine ssh默认
docker @ default:〜$ sudo -s root @ default:/ home / docker #mkdir / var / lib / boot2docker / certs root @ default:/ home / docker #cp /c/Users/my.username/certs/*。 pem / var / lib / boot2docker / certs /
现在是时候编写一个bootlocal.sh脚本,每次系统启动时都会将证书复制到正确的位置。[2]如果您还没有,请按照步骤4打开与本机的SSH连接。
touch /var/lib/boot2docker/bootlocal.sh&& chmod + x /var/lib/boot2docker/bootlocal.sh vi /var/lib/boot2docker/bootlocal.sh插入以下内容并保存文件:
!/bin/sh
mkdir -p /etc/docker/certs.d&& cp certs / certificate.pem /etc/docker/certs.d
通过使用计算机内的reboot命令或使用Docker终端中的docker-machine命令重新启动计算机:
docker-machine restart default
现在你应该能够运行'hello-world'和其他人。我希望这有帮助。
参考:Docker on Windows (Boot2Docker) - certificate signed by unknown authority error
我最近遇到了同样的问题,并能够通过以下步骤解决问题。正如官方docker文档中所建议的那样
docker-machine stop default
docker-machine rm default
其中'default'是docker-machine的默认名称。
删除后使用代理设置创建docker-machine:
docker-machine create -d virtualbox --engine-env HTTP_PROXY = http://example.com:8080 --engine-env HTTPS_PROXY = https://example.com:8080 --engine-env NO_PROXY = example2.com default这个解决方案绝对适合我。
我通过在config.json文件的代理设置中的代理URL末尾添加一个尾部反斜杠(“/”)来解决这个问题。