您不能仅仅强制所有 docker push
命令推送到您的私有注册表。原因之一是您可以拥有任意数量的这些寄存器。您必须先通过标记图像来告诉docker将信息推送到何处(请参见下图)。
这是设置Docker主机以与运行中的私有注册表和本地镜像一起使用的方法。
客户设置
假设您在名为 dockerstore的 (可解析)主机上同时运行镜像注册表和私有注册表。在端口5555上镜像,在5000上注册。
然后在 客户端 计算机上,您应该将其他选项传递给docker daemon启动。在您的情况下:
- 添加
--registry-mirror=http://dockerstore:5555
以告诉守护程序更喜欢使用本地镜像,而不是dockerhub。资源 - 添加
--insecure-registry dockerstore:5000
无需进一步配置即可访问私有注册表。 - 重新启动docker daemon
使用镜子
拉动任何图像时,第一个源将是本地镜像。您可以通过运行docker pull进行确认,例如
docker pull debian
在输出中将显示一条消息称镜像已从镜像中拉出-dockerstore:5000
使用本地注册表
为了先推 送到私有注册表,您必须使用注册表的全名 标记 要推送 的映像
。确保标签的第一部分中有一个点或冒号,以告知docker该图像应推送到私有注册表。
Docker寻找“。” (域分隔符)或“:”(端口分隔符)以了解存储库名称的第一部分是位置而不是用户名。
例:
将30d39e59ffe2映像标记为 dockerstore:5000 / myapp:stable
docker tag 30d39e59ffe2 dockerstore:5000/myapp:stable
推送到私人注册表
docker push dockerstore:5000/myapp:stable
那你也可以拉
docker pull dockerstore:5000/myapp:stable



