我正在尝试将docker镜像发布到私有存储库,但我不知道应该将SSL证书放在Windows计算机上的什么位置。
根据本页https://docs.docker.com/engine/security/certificates/,证书应该放在/etc/docker/certs.d/HOSTNAME目录中。这显然不是Windows路径。但是,当我运行docker终端并输入cd /etc时,它确实会将我带到一个工作目录。
经过一些调查后,我发现它会转到C:\Program Files\Git\etc,所以我在该路径下创建了一个docker\certs.d\docker-registry.lan (docker-registry.lan是我们的内部注册表)目录。然后我用docker-machine stop,docker-machine start命令重启docker机器。
但是,当我尝试推送时,我收到一个错误消息: x509:证书由未知的授权机构签署
这个密钥对于其他通过linux做这件事的人来说工作得很好,所以我知道这个密钥是好的。我认为问题在于我没有将密钥存储在正确的位置。
我已经尝试了一堆不同的键操作,但似乎都不起作用。这必须是我错过的一个简单的修复方法。有人能帮我解决这个问题吗?
谢谢
发布于 2016-09-20 21:22:36
如果你在windows机上运行Docker守护进程,那么正确的位置是C:\ProgramData\docker\certs.d\myregistrydomain.com5000\ca.crt。详情请访问:https://github.com/docker/docker/issues/21189#issuecomment-234997515
发布于 2019-07-22 05:14:57
情况已经发生了变化,不需要在Windows 10上的任何地方放置证书文件或担心端口号。(截至2019年7月21日)
在Docker Community 2.0.0.3 (31259)上,只需将docker存储库的公共证书添加到本地计算机上的"Trusted Root Authorities“。您可以双击您的证书,它将开始询问您要将其放在何处的过程。(它可能也适用于当前的用户商店,没有检查)。
将证书添加到存储区后,重新启动Docker服务,然后可以从您的私有存储库进行推送/拉取。
下面的docker VM在启动期间从Windows获取所有受信任的根授权机构,并为您管理这些授权机构。
发布于 2016-03-17 07:07:07
解决方案是
切换到虚拟机所在的本地文件夹,然后将文件拷贝到vm:docker-machine scp ca.crt default:.
docker-machine ssh default
ca.crt:sudo mkdir /var/lib/boot2docker/certssudo cp ca.crt /var/lib/boot2docker/certsca.crt vm:docker-machine restart default
exit
基于https://github.com/docker/machine/issues/1717和https://github.com/boot2docker/boot2docker/issues/347的答案
https://stackoverflow.com/questions/36041648
复制相似问题