Docker推到私人registry问题

这是我的设置:

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

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

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

错误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后,我将ip添加到docker主机上的/ etc / hosts中。 如果我尝试“docker推docker:5000 /testing”它尝试使用HTTPS和错误1失败,如果我尝试“docker推docker/testing”,它是要求我的用户名和密码。 这是预期的?

 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" 

如果需要authentication,我可以在哪里find我的用户名和密码。 我也可以启动dockerregistry没有身份validation?

一旦你有你的私人registry运行,你需要重新上传你想要上传的图像。 假设命令泊坞窗图像返回一个名为jason / test的图像,则使用docker标签命令将其复制为新名称:

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

假设您的内部dockerregistry可通过dns名称myregistry.mycompany.local进行访问,并且它在缺省端口5000上运行,则命令如下所示:

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

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 

现在你可以运行docker push myregistry.mycompany.local:5000 / test把图像推送到你的内部registry中。

使用参数--insecure-registry运行Docker守护进程不会启动一个不安全的registry,它只是允许它连接到一个。

命令docker push 1.2.3.4:5000/test试图连接到1.2.3.4:5000的registry,但它不存在,所以它错误了。

docker push docker/test命令试图推送到官方的Docker Hub,这需要你build立一个帐户,因此要求你input用户名和密码。

有关如何运行您自己的registry的详细信息,请查看registry的Github存储库 。