dag*_*gra 2 docker docker-machine docker-toolbox
根据我的公司政策,我们使用的是 Windows 7,在机器上具有特权访问权限(管理员权限的子集)。
我已经安装了 docker 工具箱,但是当我从 Artifactory 公司的 Docker 中心提取图像时,由于 HTTPS 和代理,我遇到了问题。
我终于弄清楚了如何正确地在带有 HTTPS 证书的公司代理后面的 Windows 7 上设置 docker 工具箱。
以下是步骤
C:/Users/<user>/.docker/machine/machines/default并打开config.json。如果你没有那个文件夹,那么请从你的桌面打开“Docker Quickstart Terminal”,为自己创建一个虚拟的 docker-machine。Run Code Online (Sandbox Code Playgroud){ "HostOptions": { ... "EngineOptions": { ... "Env": [ "HTTP_PROXY=http://<username>:<pwd>@<host>:<port>", "HTTPS_PROXY=http://<username>:<pwd>@<host>:<port>", "NO_PROXY=<docker-machine ip>" ], } } }
请注意HTTPS_PROXY.
完成上述步骤后,您需要安装公司证书
获取一组企业根证书,它应该安装在您的企业配置的浏览器中。在 Chrome 中,您可以转到设置,单击显示高级设置,然后向下滚动到 HTTPS/SSL,您可以在其中选择管理证书。我的组织已将它们置于受信任的根认证机构中,并以组织的名字命名它们。每次导出(我有两个),一次一个,确保选择 DER 格式。
将它们保存到已知位置后,您需要将它们转换为 PEM 格式。我发现最简单的方法是从 Docker 快速入门终端中运行 openssl.exe[1] 命令。
openssl x509 -inform der -in certificate.cer -out certificate.pem
获得 .pem 文件后,您需要将它们复制到 Docker 机器可以访问的位置。我在其中创建了一个目录c:\Users\my.username\certs并将它们复制到那里。
这一步可能不是绝对必要的,但这是我所做的,并且有效。您需要将这些证书复制到持久的 boot2docker 分区中。我正在连接到我的默认机器,这是您需要在步骤 5 中执行的操作。
MINGW64:$
docker-machine ssh default码头工人@默认:~$
sudo -sroot@default:/home/docker#
mkdir /var/lib/boot2docker/certsroot@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
Run Code Online (Sandbox Code Playgroud)
重新启动机器,可以使用reboot机器内部的命令,也可以使用Docker 终端的 docker-machine 命令:
docker-machine restart default
现在您应该能够运行 'hello-world' 和其他程序。我希望这有帮助。
参考:Windows 上的 Docker (Boot2Docker) - 由未知权限错误签名的证书
| 归档时间: |
|
| 查看次数: |
2005 次 |
| 最近记录: |