gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 18:08:04 25 4
gpt4 key购买 nike

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

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

最佳答案

我终于弄明白了如何在带有 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>"
],
}
}
}

请注意HTTPS_PROXY中的http .

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

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

  3. 将它们保存到已知位置后,您需要将它们转换为 PEM 格式。我发现最简单的方法是从 Docker Quickstart Terminal 中运行 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

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 - 在 Windows 上的代理后面设置 docker 工具箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53038332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com