Docker 推送到私有注册表问题

Docker push to private registry issues

这是我的设置:

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

docker -d --iptables=true --insecure-registry 1.2.3.4:5000

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

错误 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 

错误2:得到错误2后,我在docker主机上给/etc/hosts添加了ip。如果我尝试 "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"

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

运行 带有参数 --insecure-registry 的 Docker 守护程序不会启动不安全的注册表,它只允许它连接到一个。

命令 docker push 1.2.3.4:5000/test 试图连接到位于 1.2.3.4:5000 的注册表,但它不存在,因此出错。

命令 docker push docker/test 尝试推送到官方 Docker Hub,这需要您设置一个帐户,因此要求您提供用户名和密码。

查看 Github repository for the registry 以了解有关如何 运行 您自己的注册表的详细信息。

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

docker tag jason/test <server.name>:<port>/<image name>

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

docker tag jason/test myregistry.mycompany.local:5000/test

docker 图像命令现在将显示:

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

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