Docker 推送到私有注册表问题

Jas*_*son 2 docker docker-registry

这是我的设置:

Docker 守护进程作为不安全的注册表运行,如下所示:

docker -d --iptables=true --insecure-registry 1.2.3.4:5000
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试从远程系统推送到该注册表时,它给了我不同的错误。

错误 1:

docker push 1.2.3.4:5000/test
EOF error: 
FATA[0002] Error: Invalid registry endpoint 1.2.3.4:5000/v1: Get 1.2.3.4:5000/v1/_ping: EOF 
Run Code Online (Sandbox Code Playgroud)

错误2:得到错误2后,我将ip添加到docker主机上的/etc/hosts。如果我尝试“docker push docker:5000/test”,它会尝试使用 https 并失败并显示错误 1,如果我尝试“docker push docker/test”,它会要求我输入用户名和密码。这是预期的吗??

Error:
The push refers to a repository [docker/test] (len: 1)
Sending image list

Please login prior to push:
Username: docker
Password:
Email: docker@internet.com

FATA[0011] Error response from daemon: Registration: "Forbidden username"
Run Code Online (Sandbox Code Playgroud)

如果它需要身份验证,我在哪里可以找到我的用户名和密码。我也可以在没有身份验证的情况下启动 docker 注册表吗??

小智 5

一旦您的私人注册表运行,您需要重新标记要上传的图像。假设命令 docker images 返回一个名为 jason/test 的图像,您可以使用 docker tag 命令以新名称复制它:

docker tag jason/test <server.name>:<port>/<image name>
Run Code Online (Sandbox Code Playgroud)

假设您的内部 docker 注册表可以通过 dns 名称 myregistry.mycompany.local 访问,并且它在默认端口 5000 上运行,命令将如下所示:

docker tag jason/test myregistry.mycompany.local:5000/test
Run Code Online (Sandbox Code Playgroud)

docker images 命令现在将显示:

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
myregistry.mycompany.local:5000/test   latest              c776f089e3cf        6 days ago          707.3 MB
jason/test               latest              c776f089e3cf        6 days ago          707.3 MB
Run Code Online (Sandbox Code Playgroud)

现在您可以运行 docker push myregistry.mycompany.local:5000/test 将图像推送到您的内部注册表。