我有通过virtualbox在Windows上运行的boot2docker 1.4.1。我支持MITM https证书的代理。我通过在中添加以下行来配置代理/var/lib/boot2docker/profile:
/var/lib/boot2docker/profile
export HTTP_PROXY=<proxyhost>:80 export HTTPS_PROXY=<proxyhost>:80 DOCKER_TLS=no EXTRA_ARGS="--insecure-registry index.docker.io"
然而,当我跑docker@boot2docker:~$ docker run hello-world我得到
docker@boot2docker:~$ docker run hello-world
Unable to find image 'hello-world:latest' locally Pulling repository hello-world FATA[0006] Get https://index.docker.io/v1/repositories/library/hello-world/images : x509: certificate signed by unknown authority
请帮助我找出忽略证书错误的正确方法。谢谢!
编辑 看起来新的docker仅适用于Windows 10的某些版本。如果您仍然停留在Windows 7上,我已经更新了以下内容,以反映安装最新版本的docker-toolbox(Docker 1.11.2)时必须纠正“证书链中的自签名证书”错误的步骤。)。
终于在Windows 7上按照以下答案在Windows 7上工作了:https : //github.com/boot2docker/boot2docker/issues/347
通过运行openssl s_client -showcerts检查这是您的问题:
docker@boot2docker:~$ openssl s_client -showcerts -CApath . -connect index.docker.io:443
(编辑:从-showcerts中删除了32个,并更正了主机名)
在证书链中,您将看到代理已插入自身,并且验证返回了类似以下的错误
Verify return code: 19 (self signed certificate in certificate chain)
如果您遇到相同的问题,请尝试以下步骤:
docker@boot2docker:~$ sudo mkdir /var/lib/boot2docker/certs/
docker@boot2docker:~$ sudo cp /c/Users/<username>/<folder>/<proxy-cert>.pem /var/lib/boot2docker/certs/
/var/lib/boot2docker/bootlocal.sh
C:\>docker-machine restart
docker-machine ssh
docker run hello-world
您应该看到包含以下内容的输出:
Hello from Docker. This message shows that your installation appears to be working correctly.