2017-02-17 56 views
0

我想安装使用步骤herehere泊坞窗注册表镜不保存图像minikube

我用,启动注册表镜

docker run -d --restart=always -p 5000:5000 --name registry-mirror -v /Users/proxycache/docker-proxy-cache/data:/var/lib/registry -v /Users/proxycache/docker-proxy-cache/config:/etc/docker/registry registry:2 

我的配置看起来命令码头工人注册表镜像

version: 0.1 
log: 
    fields: 
    service: registry 
storage: 
    cache: 
    blobdescriptor: inmemory 
    filesystem: 
    rootdirectory: /var/lib/registry 
    delete: 
    enabled: true 
http: 
    addr: :5000 
    headers: 
    X-Content-Type-Options: [nosniff] 
health: 
    storagedriver: 
    enabled: true 
    interval: 10s 
    threshold: 3 
proxy: 
    remoteurl: https://registry-1.docker.io 

我没有设置任何证书,因为这只是本地的,而不是绑定到域。

开始后,我能够运行curl -I http://proxycache.local:5000/v2/,我得到

HTTP/1.1 200 OK 
Content-Length: 2 
Content-Type: application/json; charset=utf-8 
Docker-Distribution-Api-Version: registry/2.0 
X-Content-Type-Options: nosniff 
Date: Mon, 20 Feb 2017 17:52:21 GMT 

我还可以运行curl http://proxycache.local:5000/v2/_catalog,我得到

{"repositories":[]} 

然后我用这个命令minikube start --vm-driver=xhyve --disk-size=40g --memory=8192 --registry-mirror http://proxycache.local:5000 --insecure-registry http://proxycache.local:5000

开始minikube eval $(minikube docker-env)

如果我运行docker info我得到

Containers: 59 
Running: 22 
Paused: 0 
Stopped: 37 
Images: 15 
Server Version: 1.11.1 
Storage Driver: overlay 
Backing Filesystem: extfs 
Logging Driver: json-file 
Cgroup Driver: cgroupfs 
Plugins: 
Volume: local 
Network: bridge null host 
Swarm: 
NodeID: 
Is Manager: false 
Node Address: 
Init Binary: 
containerd version: 
runc version: 
init version: 
Kernel Version: 4.7.2 
Operating System: Buildroot 2016.08 
OSType: linux 
Architecture: x86_64 
CPUs: 2 
Total Memory: 7.797 GiB 
Name: minikube 
ID: JGCU:HKNT:AOEL:PRNQ:DRNE:OQAM:2PI2:HSOD:VBPW:4LIN:BHIL:JDOF 
Docker Root Dir: /mnt/sda1/var/lib/docker 
Debug Mode (client): false 
Debug Mode (server): false 
Username: bot 
Registry: https://index.docker.io/v1/ 
Labels: 
provider=xhyve 
Experimental: false 
Insecure Registries: 
127.0.0.0/8 
Registry Mirrors: 
http://proxycache.local:5000/ 
Live Restore Enabled: false 

在那里说

Registry Mirrors: 
http://proxycache.local:5000/ 

似乎表明minikube是否设置正确

如果我运行docker pull busybox:latest它下载图像,但不将部分更新镜像。如果我拉目录curl http://proxycache.local:5000/v2/_catalog它仍然是空的

我还缺少什么?

按这里的要求是我从docker logs registry-mirror

time="2017-02-20T15:15:34Z" level=warning msg="No HTTP secret provided - generated random secret. This may cause problems with uploads if multiple registries are behind a load-balancer. To provide a shared secret, fill in http.secret in the configuration file or set the REGISTRY_HTTP_SECRET environment variable." go.version=go1.6.3 instance.id=f9fc5ef5-0faa-4bdb-b2ef-e5d10d5d5be5 version=v2.5.1 
time="2017-02-20T15:15:34Z" level=info msg="redis not configured" go.version=go1.6.3 instance.id=f9fc5ef5-0faa-4bdb-b2ef-e5d10d5d5be5 version=v2.5.1 
time="2017-02-20T15:15:34Z" level=info msg="Starting upload purge in 50m0s" go.version=go1.6.3 instance.id=f9fc5ef5-0faa-4bdb-b2ef-e5d10d5d5be5 version=v2.5.1 
time="2017-02-20T15:15:34Z" level=info msg="using inmemory blob descriptor cache" go.version=go1.6.3 instance.id=f9fc5ef5-0faa-4bdb-b2ef-e5d10d5d5be5 version=v2.5.1 
time="2017-02-20T15:15:34Z" level=info msg="Starting cached object TTL expiration scheduler..." go.version=go1.6.3 instance.id=f9fc5ef5-0faa-4bdb-b2ef-e5d10d5d5be5 version=v2.5.1 
time="2017-02-20T15:15:34Z" level=info msg="Registry configured as a proxy cache to https://registry-1.docker.io" go.version=go1.6.3 instance.id=f9fc5ef5-0faa-4bdb-b2ef-e5d10d5d5be5 version=v2.5.1 
time="2017-02-20T15:15:34Z" level=info msg="listening on [::]:5000" go.version=go1.6.3 instance.id=f9fc5ef5-0faa-4bdb-b2ef-e5d10d5d5be5 version=v2.5.1 
+0

这是你正在使用的完整运行脚本吗?正如在教程中,它似乎表明你需要在'registry:2'之后使用'registry:2/var/lib/registry/config.yml',但你似乎没有这个 – jrbeverly

+0

你应该也发布docker为初始启动记录registry-mirror'。我会好奇的是,有两种情况:1)前面的注释中提到的config.yml的链接是否正确,以及2)从config.yml中删除delete,看看是否可以获得HTTP 200 '代码从注册表 – jrbeverly

+0

我删除了删除,没有任何改变,但我质疑,如果它甚至读我的配置摆在首位。我之所以没有包含像本教程所说的配置,是因为我在config -v/Users/proxycache/docker-proxy-cache/config:/ etc/docker/registry'的原始位置包含了一个卷。但是,当我在启动脚本的末尾包含配置文件时,在docker logs配置错误中出现错误:open /Users/proxycache/docker-proxy-cache/config/config.yml:no such file or directory'文件确实存在,并且拥有755个权限。 – ryanmc

回答

0

得到如此看来,搬运工,或者coreos不喜欢我们设置我们的DNS的方式。我最终不得不使用镜像的IP地址而不是DNS名称,现在它可以工作。