我创造了两个码头集装箱。第一种是提供私人码头注册,第二种是正式码头注册的镜像:
docker run -d --name registry -v /local/path/to/registry:/registry -e SETTINGS_FLAVOR=local -e STORAGE_PATH=/registry -p 5000:5000 registry
docker run -d --name mirror -v /local/path/to/mirror:/registry -e STORAGE_PATH=/registry -e STANDALONE=false -e MIRROR_SOURCE=https:/registry-1.docker.io -e MIRROR_SOURCE_INDEX=https://index.docker.io -p 5555:5000 registry
现在我想把两者结合起来。每当用户提取图像时,它都应该首先查询私有注册表,然后查询镜像。当图片被推送时,它们只应该被推送到私有注册中心。
我不知道如何做到这一点。任何帮助都是非常感谢的。
发布于 2015-02-17 14:21:31
您不能仅仅强制所有停靠程序推送命令推送到您的专用注册表。原因之一是您可以拥有任意数量的这些寄存器。你必须首先告诉对接者推到哪里,通过标记图像(见下方)。
下面是如何设置停靠主机以使用正在运行的私有注册表和本地镜像。
客户设置
假设您同时在(可解析的)主机上运行镜像和私有注册表,称为dockerstore。镜像端口5555,注册表在5000。
然后,在客户端机器上,您应该将额外的选项传递给停靠守护进程启动。就你而言:
--registry-mirror=http://dockerstore:5555
来告诉守护进程更喜欢使用本地镜像而不是dockerhub。来源--insecure-registry dockerstore:5000
以访问私有注册表,而无需进一步配置。请参阅这个答案用镜子
当您提取任何图像时,第一个源将是本地镜像。你可以通过运行码头拉杆来确认。
docker pull debian
在输出中,将显示镜像正在从镜像-dockerstore中提取的消息:5000。
使用本地注册表
为了将推到私有注册中心,首先必须使用注册中心的全名标记要推送的图像。确保您在标签的第一部分中有一个点或冒号,以告诉停靠者应该将图像推送到私有注册表。
码头工人要么找一个“。(域分隔符)或“:”(端口分隔符)以了解存储库名称的第一部分是位置而不是用户名。
示例:
标签30d39e59ffe2图片为dockerstore:5000/myapp:稳定
docker tag 30d39e59ffe2 dockerstore:5000/myapp:stable
将其推送到专用注册中心
docker push dockerstore:5000/myapp:stable
然后你也可以拉
docker pull dockerstore:5000/myapp:stable
发布于 2021-07-04 17:37:17
如果不存在,请创建文件:
sudo nano /etc/docker/daemon.json
然后粘贴以下内容:
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
然后重新处理Docker守护进程
$ sudo systemctl restart docker
[来源]
发布于 2017-01-11 14:50:01
为了明确起见,码头文件确认:
目前不可能镜像另一个私有注册中心。只有中央枢纽才能被镜像。
https://stackoverflow.com/questions/28557384
复制相似问题