将文件推送到 Docker 中的私有注册表

Pushing files into private registry in Docker

我已经使用 docker run -t -i -p 5000:5000 registry 设置了私有注册表,可以从 192.168.59.103:5000 访问它(我正在使用 boot2docker)。现在我已经拉了一个图像 tutum/tomcat 并且当我尝试将图像 (docker push 192.168.59.103:5000/tomcat) 标记为 192.168 后推送到注册表中.59.103:5000/tomcat 我遇到以下错误,如下所示 --

FATA[0004] Error: v1 ping attempt failed with error: Get https://192.168.59.103:5000/v1/_ping: EOF. If this private regi
stry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry 192.168.59.103: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/192.168.59.103:5000/ca.crt

来自其他帖子 --

我读过一些关于此的 post 文章,他们说添加 DOCKER_OPTS 可以解决问题,并且应该将其添加到 /etc/default/docker 但在我的系统中 /etc/default 不包含 docker 文件夹,如命令 sudo ls /etc/default/ 所示,它提供结果作为单曲文件夹 aufs.

另一个 post 声明可以通过简单地将证书放在 /etc/docker/certs.d/192.168.59.103:5000/ca.crt 但我 无法移动到 docker 目录,即使我使用 sudo 如下所示 - 对于 cd /etc/docker

-sh: cd: can't cd to /etc/docker

我在 docker 中使用注册表 ip 作为 0.0.0.0:5000 重复了相同的过程(假设 $boot2docker ip 应该在主机中使用而不是在 docker) -- 但这仍然没有解决我面临的问题。

请帮我解决这个问题。我在下面添加了系统规范 --

系统规格:

Microsoft Windows 7 via. boot2docker (CLI version 1.5)
Client version: 1.5.0
Client API version: 1.17
Go version (client): go1.4.1
Git commit (client): a8a31ef
OS/Arch (client): linux/amd64
Server version: 1.5.0
Server API version: 1.17
Go version (server): go1.4.1
Git commit (server): a8a31ef

要使用 --insecure-registry 选项,请将其添加到 boot2docker VM 内的文件 /var/lib/boot2docker/profile 中。您可以使用 boot2docker ssh 进入虚拟机。文件内容应如下所示:

EXTRA_ARGS="--insecure-registry REGISTRY_IP:PORT"

然后您需要重新启动 boot2docker(例如 boot2docker restart)。

我不知道为什么你不能编辑 /etc/docker。以下对我有用:

docker@boot2docker:~$ sudo ls /etc/docker
key.json