在 Windows 上的代理后面设置 docker 工具箱

dag*_*gra 2 docker docker-machine docker-toolbox

根据我的公司政策,我们使用的是 Windows 7,在机器上具有特权访问权限(管理员权限的子集)。

我已经安装了 docker 工具箱,但是当我从 Artifactory 公司的 Docker 中心提取图像时,由于 HTTPS 和代理,我遇到了问题。

dag*_*gra 5

我终于弄清楚了如何正确地在带有 HTTPS 证书的公司代理后面的 Windows 7 上设置 docker 工具箱。

以下是步骤

  1. 安装 Docker 工具箱
  2. 安装后,转到C:/Users/<user>/.docker/machine/machines/default并打开config.json。如果你没有那个文件夹,那么请从你的桌面打开“Docker Quickstart Terminal”,为自己创建一个虚拟的 docker-machine。
  3. 在下面添加以下几行
{
    "HostOptions": {
        ...
        "EngineOptions": {
            ...
            "Env": [
                "HTTP_PROXY=http://<username>:<pwd>@<host>:<port>",
                "HTTPS_PROXY=http://<username>:<pwd>@<host>:<port>",
                "NO_PROXY=<docker-machine ip>"
            ],
        }
    }
 }
Run Code Online (Sandbox Code Playgroud)

请注意HTTPS_PROXY.

  1. 完成上述步骤后,您需要安装公司证书

  2. 获取一组企业根证书,它应该安装在您的企业配置的浏览器中。在 Chrome 中,您可以转到设置,单击显示高级设置,然后向下滚动到 HTTPS/SSL,您可以在其中选择管理证书。我的组织已将它们置于受信任的根认证机构中,并以组织的名字命名它们。每次导出(我有两个),一次一个,确保选择 DER 格式。

  3. 将它们保存到已知位置后,您需要将它们转换为 PEM 格式。我发现最简单的方法是从 Docker 快速入门终端中运行 openssl.exe[1] 命令。

openssl x509 -inform der -in certificate.cer -out certificate.pem

  1. 获得 .pem 文件后,您需要将它们复制到 Docker 机器可以访问的位置。我在其中创建了一个目录c:\Users\my.username\certs并将它们复制到那里。

  2. 这一步可能不是绝对必要的,但这是我所做的,并且有效。您需要将这些证书复制到持久的 boot2docker 分区中。我正在连接到我的默认机器,这是您需要在步骤 5 中执行的操作。

MINGW64:$ docker-machine ssh 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
Run Code Online (Sandbox Code Playgroud)

重新启动机器,可以使用reboot机器内部的命令,也可以使用Docker 终端的 docker-machine 命令:

docker-machine restart default

现在您应该能够运行 'hello-world' 和其他程序。我希望这有帮助。

参考:Windows 上的 Docker (Boot2Docker) - 由未知权限错误签名的证书