ImagePullBackOff与Minikube的本地存储库

我正在尝试使用minikube和kitematic在本地机器上testingkubernetes。 但是,kubernetes无法在本地存储库(ImagePullBackOff)中提取图像。

我试图解决这个问题: 使用Minikube时,无法从私有仓库中拖出Docker镜像

但我没有/etc/init.d/docker,我认为这是因为运动? (我在OS X上)

有任何想法吗 ?

谢谢

编辑:

我安装了https://github.com/docker/docker-registry ,并且

docker tag local-image-build localhost:5000/local-image-build docker push localhost:5000/local-image-build 

我的kubernetes yaml包含:

 spec: containers: - name: backend-nginx image: localhost:5000/local-image-build:latest imagePullPolicy: Always 

但它仍然无法正常工作…日志:

 Error syncing pod, skipping: failed to "StartContainer" for "backend-nginx" with ErrImagePull: "Error while pulling image: Get http://127.0.0.1:5000/v1/repositories/local-image-build/images: dial tcp 127.0.0.1:5000: getsockopt: connection refused 

编辑2:

我不知道自己是否走上了正轨,但是我发现:

http://kubernetes.io/docs/user-guide/images/

但我不知道我的DOCKER_USER是什么…

 kubectl create secret docker-registry myregistrykey --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL 

编辑3

现在我上了我的吊舱:

 Failed to pull image "local-image-build:latest": Error: image library/local-image-build not found Error syncing pod, skipping: failed to "StartContainer" for "backend-nginx" with ErrImagePull: "Error: image library/local-image-build not found" 

帮助我我疯了。

编辑4

 Error syncing pod, skipping: failed to "StartContainer" for "backend-nginx" with ErrImagePull: "Error response from daemon: Get https://192.168.99.101:5000/v1/_ping: tls: oversized record received with length 20527" 

我补充说:

 EXTRA_ARGS=' --label provider=virtualbox --insecure-registry=192.168.99.101:5000 

到我的dockerconfiguration,但它仍然是行不通的,相同的消息….

顺便说一下,我改变了我的yaml:

  spec: containers: - name: backend-nginx image: 192.168.99.101:5000/local-image-build:latest imagePullPolicy: Always 

我运行我的registry就像这样:

 docker run -d -p 5000:5000 --restart=always --name myregistry registry:2 

我想我是这样做的

 minikube start --vm-driver="virtualbox" --insecure-registry="$REG_IP":80 

而不是仅仅

 minikube start 

资源

添加–insecure-registry =“$ REG_IP”:80似乎不适合我。

我必须使用wlredeye的答案在使用Minikube工作时 , 无法从私有仓库中拖出docker镜像 :

对于httpregistry,这个步骤适用于我:

  1. minikube ssh
  2. 编辑/ var / lib / boot2docker / profile并添加到$ EXTRA_ARGS --insecure-registry 192.168.99.1(your local machine's IP):5000
  3. 重启docker守护进程sudo /etc/init.d/docker restart
  4. validation您可以访问dockerregistrycurl -s -S http://192.168.99.1/v2/_catalog

这是minikube版本:v0.14.0

首先你需要启动一个本地registry,似乎你已经完成了。

docker run -d -p 5000:5000 --restart=always --name myregistry registry:2

你可以通过ifconfig检查你的minikube IP

应该有输出(minikube开始使用virtualbox作为VMdriver后)看起来像:

vboxnet0 Link encap:Ethernet HWaddr 0a:00:27:00:00:00
inet addr:192.168.99.1 Bcast:192.168.99.255 Mask:255.255.255.0 inet6 addr: fe80::800:27ff:fe00:0/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:515 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:86256 (86.2 KB)

运用

minikube start --insecure-registry=192.168.99.1:5000

你可以真正检查你是否可以简单地通过(在minikube中)

docker pull 192.168.99.1:5000/your_own_repo/your_own_images

希望这可能有帮助。