docker push on本地注册表问题https访问ressource被拒绝

时间:2017-03-29 14:24:52

标签: ssl nginx docker ssl-certificate docker-registry

我的注册表泊坞窗有问题。我的“服务器”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镜像。

有人知道为什么并且知道如何帮助我吗?

1 个答案:

答案 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中推送/提取您的注册表。

相关问题