Docker私有registry

在虚拟服务器的Ubuntu 14.04我已经安装了docker,我尝试推送到本地registry的图像。 我在Docker博客上按照这个指南,但是当我尝试推送图像时,我有这个输出:

错误:无效的registry端点https://xx.xx.xx.xx/v1/ :获取https://xx.xx.xx.xx/v1/_ping :x509:证书已过期或尚未生效。 如果此私有registry仅支持具有未知CA证书的HTTP或HTTPS,请将--insecure-registry xx.xx.xx.xx添加到守护程序的参数中。 在HTTPS的情况下,如果您有权访问registry的CA证书,则不需要该标志; 只需将CA证书放在/etc/docker/certs.d/xx.xx.xx.xx/ca.crt

我尝试在/etc/default/docker文件中添加--insecure-registry xx.xx.xx.xx并重新启动docker服务。 Docker无法以message /proc/self/fd/9: 17: /etc/default/docker: --insecure-registry: not found

PS:我在一个docker容器中运行我的registry

我有与Ubuntu 12.04和Docker 1.4.1相同的问题。 这是我的解决方案:

 $ sudo docker push "[host:ip:v6:addr:ess:is:here]:5000/myImage" FATA[0002] Error: Invalid registry endpoint https://[host:ip:v6:addr:ess:is:here]:5000/v1/: Get https://[host:ip:v6:addr:ess:is:here]:5000/v1/_ping: EOF. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry [host:ip:v6:addr:ess:is:here]:5000` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/[host:ip:v6:addr:ess:is:here]:5000/ca.crt 

所以,我有一个错误。

 $ ps axwww | grep /usr/bin/docker 14655 ? Ssl 2:06 /usr/bin/docker -d 14869 pts/0 S+ 0:00 grep /usr/bin/docker 

注意,/ usr / bin / docker没有额外的参数。

 $ echo 'DOCKER_OPTS="--insecure-registry [host:ip:v6:addr:ess:is:here]:5000"' | sudo tee -a /etc/default/docker DOCKER_OPTS="--insecure-registry [host:ip:v6:addr:ess:is:here]:5000" $ sudo service docker restart docker stop/waiting docker start/running, process 15615 

让我们来看看是否出现了参数:

 $ ps axwww | grep /usr/bin/docker 15615 ? Ssl 0:00 /usr/bin/docker -d --insecure-registry [host:ip:v6:addr:ess:is:here]:5000 15663 pts/0 S+ 0:00 grep /usr/bin/docker 

是的,他们这样做。 再一次尝试:

 $ sudo docker push "[host:ip:v6:addr:ess:is:here]:5000/myImage" The push refers to a repository [[host:ip:v6:addr:ess:is:here]:5000/myImage] (len: 1) Sending image list Pushing repository [host:ip:v6:addr:ess:is:here]:5000/myImage (1 tags) 511136ea3c5a: Image successfully pushed 27d47432a69b: Pushing [================================================> ] 189.8 MB/197.2 MB 0 

只是运行这个docker run -p 5000:5000 -d registry会让你陷入麻烦与https。

我发现这个教程很有帮助: 如何在Ubuntu 14.04上设置私有Docker注册表

它基本上建立一个与Nginx的反向代理访问私人注册表。 我有一个注册表和一个不同的流浪者箱子从这个注册表中拉东西的流浪者箱子。 有用 :)

希望有所帮助

直接在主机上设置docker注册表是非常令人沮丧的。 设置本地docker仓库最简单的方法是使用docker-registry泊坞窗镜像。 简单地执行

 docker run -p 5000:5000 -d registry 

和码头工人应该下载官方的码头注册表图像。 之后,您可以附加到容器并自定义设置。 资料来源: http : //www.devops-insight.com/2014/12/using-private-docker-repository-registry.html