根据我的公司政策,我们使用Windows 7,并且在计算机上具有特权访问权限(管理员权限的子集)。
我已经安装了docker工具箱,但是当它需要从Artifactory公司的Docker中心提取图像时,由于HTTPS和代理,我遇到了问题。
答案 0 :(得分:3)
我终于弄清楚了如何在Windows 7上使用HTTPS证书在公司代理后面正确设置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,在其中可以选择“管理证书”。我的组织已将它们放入受信任的根证书颁发机构,并以该组织的名字命名。导出每个(我有两个),一次导出一个,确保选择DER格式。
openssl x509-通知der -in证书.cer -out证书.pem
拥有.pem文件后,您将需要将它们复制到Docker计算机可以访问的位置。我在c:\ Users \ my.username \ certs中创建了一个目录,并将其复制到那里。
此步骤可能并非严格必要,但这是我所做的,并且可以正常工作。您将需要将那些证书复制到持久的boot2docker分区中。我正在连接到我的默认计算机,这是您需要执行第5步的操作。
MINGW64:$ docker-machine ssh默认值
docker @ default:〜$ sudo -s root @默认值:/ home / docker#mkdir / var / lib / boot2docker / certs root @默认值:/ home / docker#cp /c/Users/my.username/certs/*.pem / var / lib / boot2docker / certs /
现在是时候编写bootlocal.sh脚本了,它将在每次系统启动时将证书复制到正确的位置。[2]如果还没有,请按照步骤4打开与计算机的SSH连接。
触摸/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
答案 1 :(得分:3)
我最近遇到了同样的问题,并能够通过以下步骤解决该问题。如官方Docker文档中所述
首先,停止并删除默认的docker-machine(如果已创建)
docker-machine stop default
docker-machine rm default
其中“默认”是docker-machine的默认名称。
删除后,使用代理设置创建docker-machine:
docker-machine create -d virtualbox --engine-env HTTPS_PROXY = http://example.com:8080 --engine-env HTTPS_PROXY = https://example.com:8080 --engine-env NO_PROXY = example2.com默认值
< / li>此解决方案绝对对我有效。
答案 2 :(得分:-1)
我通过在config.json文件的代理设置中的代理URL的末尾添加反斜杠(“ /”)解决了这个问题。