我使用docker-registry来获取我自己的docker镜像,但是我想这样做而不需要指定主机。 meanning: 而不是写作:
docker pull <host>:<port>/<dockerImage>
我想写:
docker pull <dockerImage>
首先它会尝试从我的私人注册表中提取docker,然后再尝试从公共docker注册表中提取它。
有可能吗?
我尝试将DOCKER_INDEX_URL
更改为[my_docker_registry_host]:[port]
,但它不起作用。
答案 0 :(得分:1)
不,我认为它尚未得到支持(1.1.2为写)。我猜主要原因是
本地私有注册表是来自公共注册中心的不是镜像,因此逻辑不是如果它无法在本地找到,那么它就会公开。他们是完全不同的。
因此,如果我们设置自己的私有docker存储库但保持相同的命名,它将会搞砸。
当您执行docker images
,并且看到ubuntu
时,您如何知道它来自您当地的私人注册机构或公众。
更新:添加一个示例案例
如果我们有Dockerfile
,请将tomcatit用作tomcat7
作为基础
FROM tomcat7
你怎么知道这个版本来自哪里?
如果我们希望对私人仓库和公共仓库之间的映射进行严格的处理或控制,那将会很复杂。
技术上有可能,但收益减少。它失去了码头工人(社区)的力量
对于要求包的唯一名称的其他包系统,情况类似。
答案 1 :(得分:1)
您可以修改或添加/etc/sysconfig/docker
ADD_REGISTRY='--add-registry 192.168.0.169:5000'
INSECURE_REGISTRY='--insecure-registry 192.168.0.169:5000'
然后修改/etc/systemd/system/docker.service
或/usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --registry-mirror=http://192.168.0.169:5000
当您提取图像时,docker会首先从您的私人注册表中提取它,然后在您的私人注册表中找不到Docker hub。我正在使用CentOS 7 Docker 1.12。