【发布时间】:2015-02-16 15:02:06
【问题描述】:
我对以下问题的最终解决方法是说服我们的 IT 人员不要干预 dockerhub 注册表。唉,我无法让其他任何东西工作。
我最初尝试在运行 10.8.5 的 Mac 上运行 Docker 时遇到了问题。看来我公司的证书重写代理似乎妨碍了获取图像:
orflongpmacx8:docker pohl_longsine$ docker run hello-world
Unable to find image 'hello-world:latest' locally
Pulling repository hello-world
FATA[0001] Get https://index.docker.io/v1/repositories/library/hello-world/images: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "bcauth")
(确实,当我登录到没有麻烦的代理的访客无线时,我可以跳过这一步。但是,我需要弄清楚如何通过代理进行这项工作,因为使用访客无线是作为长期解决方案是站不住脚的。)
从表面上看,我的问题与this question 中回答的问题非常相似。但是,该问题中接受的答案对我不起作用,因为他们讨论的 root_unix.go 文件不会在 Mac 上被调用。 (通过浏览,我猜想root_cgo_darwin.go 和/或root_darwin.go 会参与其中。)
这并没有真正告诉我,在操作上,我需要如何完成安装某种受信任证书的等效工作。我设法拿到了一个*.cer 文件,我认为该文件是我需要的,但我不知道如何处理它。
我希望有人能指出我正确的方向。
编辑:我想也许我需要类似于 this page suggests 的东西来添加证书。唉,我尝试遵循这些说明失败了:
orflongpmacx8:docker pohl_longsine$ sudo security add-trusted-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" "~/Desktop/Certs/redacted.cer"
Password:
***Error reading file ~/Desktop/Certs/redacted.cer***
Error reading file ~/Desktop/Certs/redacted.cer
编辑 2:我可能离解决这个问题又近了一步。我应该知道更好地使用引号内带有波浪号的路径。如果我改用绝对路径,我可以成功运行上面的命令来添加证书。
唉,这并没有缓解最终的症状:
FATA[0001] Get https://index.docker.io/v1/repositories/library/hello-world/images: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "bcauth")
【问题讨论】:
-
docker 守护进程实际上并没有在 mac 上运行,因为它是非常特定于 linux 的。我假设您正在使用 vagrant 启动 docker“主机”,然后通过套接字与之通信。我猜是boot2docker。 docker 守护进程本身可以忽略无效证书(我们也使用了 palo alto 代理)。您需要 ssh 到 docker 主机 vm 并编辑 /etc/default/docker 以告诉它忽略错误证书(忘记选项,以后有机会可以添加)
-
这个:medium.com/@deeeet/… 可能会有所帮助。添加您的公司用于在代理中签署内容的根证书,一切都将变得有效
-
是的,我正在使用“boot2docker up”,而 docker 守护进程实际上是在 VirtualBox 中的 linux VM 中运行的。您是否建议我真的应该尝试将证书添加到该 VM 中? (或将其配置为忽略您所说的不良证书)。我觉得我只是把现实世界误认为黑客帝国了。
-
是的,我建议您在虚拟机 vm 中执行此操作。添加证书或禁用证书验证。您从 osx 运行的 docker 命令实际上除了 HTTP 命中在 linux 中运行的守护程序然后显示结果之外没有做任何事情。您得到的错误(很可能)来自 linux vm,与 osx config 无关
-
在某处是否有 /etc/default/docker 的文件格式参考(我找不到)。该文件尚不存在,因此我必须创建它。当我停止/启动 VM 时,是否有某种方法可以使此类更改持续存在,或者我是否必须编写脚本 scp 将文件放置到位并重新启动 docker 守护进程?
标签: macos ssl go docker boot2docker