docker 在本地注册表上推送问题 https 访问资源被拒绝

Issue with docker push on local registry https access to ressource denied

我的注册表有问题 docker。我的 "server" VM 在 kali-linux 上。我在 HTTP 中创建了注册表 docker 并使用 centOS VM 作为客户端。我在客户端 VM 中声明注册表不安全并且它运行良好。

现在我尝试把它放在 HTTPS 中。为此,我使用 nginx 作为代理。我按照本教程:Step 5 — Setting Up SSL except for Part 8 使其成为一项服务(我不知道为什么,但我做不到)。

因为没有域名,所以用的是假的。为了被识别,我将我的 IP (192.168.X.X) 和我使用的域名 (myregistryexemple) 添加到两个 VM 上的 /etc/hosts 文件中。

按照教程的要求,我在我的 "server" 虚拟机(kali 虚拟机)上生成了证书,并通过 scp 将其发送到我的客户端虚拟机。由于这个命令,我让 centOS 虚拟机信任证书:

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 VM 上使用 "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

然后我尝试直接推送到本地主机:

docker tag ubuntu localhost:5000/ubuntu & docker push localhost:5000/ubuntu 

然后我 docker 从客户端 VM 登录域,它有效,但是当我尝试从客户端 VM 上的域注册表中提取时,docker 在注册表中找不到docker 我尝试推送的图像。

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

好的,所以我找到了让它工作的方法。

这很简单:只需按照我在问题上引用的完整教程进行操作 (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)

在您创建存储库之后,在您 push/pull 一个 docker 图像之前。

您需要在 /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 守护进程。您通常可以在 https.

的注册表中使用您的域名 push/pull