docker工人:未能拉出形象(超长的logging收到长度20527

尝试使用Kubernetes(容器pipe理平台)从本地registry中拖出泊坞窗图像时出现问题。

目前的情况是,我有泊坞窗图像存储在我的docker虚拟机,它是运行在地址:192.168.99.103。 我从Windows机器运行docker工人。

我有一个本地创build的图像,名为“tomcat-test:dockerfile”。

接下来我使用以下命令创build并运行本地registry:

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

在这一点上,我贴上这样的图像:

 docker tag tomcat-test:dockerfile localhost:5000/tomcat-test:latest 

最后,我使用以下命令推送到本地registry:

 docker push localhost:5000/tomcat-test:latest 

这成功地推送到registry。

现在我想使用Kubernetes从我的本地dockerregistry。 为此,我必须提供图像在Dockerregistry中的位置的URL:

我假设url是:

 192.168.99.103:5000/tomcat-test:latest 

但是,我得到以下错误:

 Failed to pull image "192.168.99.103:5000/tomcat-test": rpc error: code = 2 desc = Error response from daemon: Get https://192.168.99.103:5000/v1/_ping: tls: oversized record received with length 20527 

我怀疑这是来自Docker的错误消息。

现在我已经在网上进行了研究,并且已经有人build议创build一个新的docker机器,在那里你指定了一个不安全的registry的IP地址。 所以我用了下面的命令:

 docker-machine create -d virtualbox --engine-insecure-registry localhost:5000 dev2 

但是,按照上面的步骤后,这仍然没有工作,我也有同样的错误。

有没有人遇到这个问题的解决scheme? 还有什么我应该做的不同,以防止这个问题出现?

任何帮助,将不胜感激。

谢谢。

find一个解决方法:

如果您使用的是minikube,则可以使用'ssh'命令进入minikube VM:

 minikube ssh 

这将带来壳。 在这里你可以通过input命令从docker hub中拖出docker镜像:

 docker pull <repo_name> 

通过这样做,你就可以将图像拖入minikube虚拟机。

在此之后,下一步是退出minikube ssh shell并在命令行上运行以下命令:

 kubectl.exe run <YOUR_POD_NAME> --image=<docker_repo_name> 

其中kubectl.exe是kubernetes可执行文件,并且是要从中提取最新映像的存储库的名称

例如:

 kubectl.exe run ubuntu-test-3 --image=rm12345/ubuntutest3:latest 

这应该运行成功。

请注意,为了让一个pod在kubernetes中成功运行,您必须确保您的Docker容器有一个无限期运行应用程序的入口点。 如果没有,那么您可能会在吊舱上看到“CrashBackLoop”状态,而不是“正在运行”的状态。