我的注册表泊坞窗有问题。我的“服务器”VM在kali-linux上。我在HTTP中创建了注册表docker,并使用centOS VM作为客户端。我在客户端虚拟机中声明了注册表不安全,并且它运行良好。
现在我尝试将其置于HTTPS中。为了做到这一点,我使用nginx作为代理。我遵循了本教程:Step 5 — Setting Up SSL除了Part 8以使其成为一项服务(我不知道为什么,但我不能这样做)。
因为我没有域名,所以我使用了假域名。为了被识别,我将我的IP(192.168.X.X)和我使用的域名(myregistryexemple)添加到两个VM上的/ etc / hosts文件中。
根据教程的要求,我在我的“服务器”VM(kali one)上生成了证书,并通过scp将其发送到我的客户端VM。由于这些命令,我让centOS vm信任证书:
yum install ca-certificates
update-ca-trust force-enable
cp cert.crt /etc/pki/ca-trust/source/anchors/
update-ca-trust extract
我在客户端VM上重新启动服务docker。并在我的kali虚拟机上使用“docker-compose up”启动docker注册表和nginx代理。
我标记并尝试在注册表中推送ubuntu:
docker tag ubuntu myregistryexemple/ubuntu
docker push myregistryexemple/ubuntu
但是我收到了这个错误:
The push refers to a repository [docker.io/myregistryexemple/ubuntu]
56827159aa8b: Preparing
440e02c3dcde: Preparing
29660d0e5bb2: Preparing
85782553e37a: Preparing
745f5be9952c: Preparing
denied: requested access to the resource is denied
然后我尝试直接推送到localhost:
docker tag ubuntu localhost:5000/ubuntu & docker push localhost:5000/ubuntu
然后我停靠从客户端VM登录域名,它工作,但当我试图从客户端VM上的域名注册表中提取时,docker无法在注册表中找到我试图推送的docker镜像。
有人知道为什么并且知道如何帮助我吗?
答案 0 :(得分:0)
好的,所以我找到了一种方法让它发挥作用。
这很简单:Juste遵循我引用问题的完整教程(https://www.digitalocean.com/community/tutorials/how-to-set-up-a-private-docker-registry-on-ubuntu-14-04#step-5-%E2%80%94-setting-up-ssl)
在您创建存储库之后,以及在推/拉泊坞窗图像之前。
您需要在/ etc / hosts上的客户端和服务器VM中运行。
添加以下行:domainChosen serverVmIp
保存并退出。
现在我们需要客户端信任生成的证书。为此,您可以使用本教程:http://kb.kerio.com/product/kerio-connect/server-configuration/ssl-certificates/adding-trusted-root-certificates-to-the-server-1605.html。
然后重新启动注册表和docker deamon。您也可以使用您的域名在https中推送/提取您的注册表。