我对下面这个问题的最终解决方法是说服我们的IT人员不要使用dockerhub注册表。我无法得到任何其他工作,唉。
我遇到了一个问题,我最初尝试让Docker在我的Mac上运行,运行10.8.5。看来我公司的证书重写代理似乎妨碍了获取图像:
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")
答案 0 :(得分:7)
根据boot2docker自述文件
Insecure Registry
As of Docker version 1.3.1, if your registry doesn't support HTTPS, you must add it as an insecure registry.
$ boot2docker init
$ boot2docker up
$ boot2docker ssh
$ echo 'EXTRA_ARGS="--insecure-registry <YOUR INSECURE HOST>"' | sudo tee -a /var/lib/boot2docker/profile
$ sudo /etc/init.d/docker restart
then you should be able to do a docker push/pull.
答案 1 :(得分:4)
http://golang.org/src/crypto/x509/root_darwin.go的来源显示命令:
cmd := exec.Command("/usr/bin/security", "find-certificate", "-a", "-p", "/System/Library/Keychains/SystemRootCertificates.keychain")
用于查找证书。
尝试将.cer
文件添加到OSX证书密钥链中。
答案 2 :(得分:0)
如果您使用docker-machine
编辑$ USER / .docker / machine / machines / default / config.json
"EngineOptions": {
"InsecureRegistry": [
"XXX.XXX.virtual"
],
}