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”状态,而不是“正在运行”的状态。