用于windows的Docker SSL证书
我试图将docker映像发布到私有存储库,但我无法确定应该将SSL证书放置在Windows计算机上的何处 根据这个页面,证书应该放在/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 machine 然而,当我尝试推送时,我得到一个错误,显示x509:由未知授权机构签署的证书 对于通过linux执行此操作的其他人来说,此密钥工作正常,因此我知道此密钥工作正常。我认为问题在于我没有将钥匙存储在正确的位置 我尝试了一系列不同的键,但似乎都不起作用。这一定是我错过的一个简单的解决办法。谁能帮我解决这个问题 谢谢解决方案是用于windows的Docker SSL证书,windows,docker,Windows,Docker,我试图将docker映像发布到私有存储库,但我无法确定应该将SSL证书放置在Windows计算机上的何处 根据这个页面,证书应该放在/etc/docker/certs.d/HOSTNAME目录中。这显然不是Windows路径。但是,当我运行docker终端并键入cd/etc时,它确实会将我带到一个工作目录 经过一些调查,我发现它将进入C:\Program Files\Git\etc,因此我在该路径下创建了一个docker\certs.d\docker-registry.lan(docker-re
ca.crt
所在的本地文件夹docker machine scp ca.crt默认值:。
docker machine ssh default
sudo mkdir/var/lib/boot2docker/certs
sudo cp ca.crt/var/lib/boot2docker/certs
Exit
docker机器重新启动默认值
.pem
格式)加载到/var/lib/boot2docker/certs/
目录中,boot2docker将在启动时自动从持久性分区加载它
只需将.crt文件重命名为.pem文件
.如果您在Windows上本机运行Docker守护程序,正确的位置是
C:\ProgramData\Docker\certs.d\myregistrydomain.com5000\ca.crt
。此处的详细信息:情况已发生变化,无需在Windows 10上的任何位置放置证书文件或担心端口号。(截至2019年7月21日)
在Docker Community 2.0.0.3(31259)上,只需将Docker repo的公共证书添加到本地计算机上的“受信任的根权限存储”。你可以双击你的证书,它会开始询问你想把它放在哪里的过程。(它可能也适用于当前用户存储,未检查)
将证书添加到商店后,重新启动Docker服务,然后可以从私人回购中推/拉
下面的docker VM在启动期间从Windows获取所有受信任的根权限,并为您管理这些权限。在Windows上配置docker客户端 要将注册表的CA证书传递给在Windows 10上运行的Docker客户端,请使用Windows证书导入向导
Copy the ca.crt file to the Windows 10 machine on which you run the Docker client.
Right-click the ca.crt file and select Install Certificate.
Follow the prompts of the wizard to install the certificate.
Restart the Docker daemon:
Click the up arrow in the task bar to show running tasks.
Right-click the Docker icon and select Settings.
Select Reset and click Restart Docker.
Log in to the registry server.
docker login registry_ip
路径是指Docker计算机上名为
default
的路径,它实际上是一个VirtualBox vm。您可以使用docker machine scp local\u certs\u path default:/etc/docker/certs.d/HOSTNAME
将证书复制到该计算机。@warmoverflow谢谢,这很有意义。但是,当我尝试$docker machine scp/c/ca.crt default:/etc/docker/certs.d/docker registry.lan
时,我得到以下错误加载主机时出错:加载主机时出错:主机不存在:“c”
很遗憾,我目前无法测试。你能试试吗?//c/ca.crt
//c/ca.crt:没有这样的文件或目录我注意到当我运行docker machine env
时,它列出了docker\u CERT\u PATH=“c:\Users\rmclaughlin\.docker\machine\machines\default
这就是我需要的路径吗?