Docker:无法提取图像(收到长度为20527的超大记录
我在尝试使用Kubernetes(一个容器管理平台)从本地注册表中提取docker映像时遇到问题 目前的情况是,我的docker VM中存储了docker映像,运行地址为192.168.99.103。我正在Windows机器上运行docker 我在本地创建了一个名为“tomcat测试:dockerfile”的图像 接下来,我使用以下命令创建并运行本地注册表:Docker:无法提取图像(收到长度为20527的超大记录,docker,kubernetes,boot2docker,docker-machine,Docker,Kubernetes,Boot2docker,Docker Machine,我在尝试使用Kubernetes(一个容器管理平台)从本地注册表中提取docker映像时遇到问题 目前的情况是,我的docker VM中存储了docker映像,运行地址为192.168.99.103。我正在Windows机器上运行docker 我在本地创建了一个名为“tomcat测试:dockerfile”的图像 接下来,我使用以下命令创建并运行本地注册表: docker run -d -p 5000:5000 --restart always --name registry registry:
docker run -d -p 5000:5000 --restart always --name registry registry:2
docker push localhost:5000/tomcat-test:latest
docker-machine create -d virtualbox --engine-insecure-registry localhost:5000 dev2
docker pull <repo_name>
此时,我对图像进行如下标记:
docker tag tomcat-test:dockerfile localhost:5000/tomcat-test:latest
最后,我使用以下命令推送到本地注册表:
docker run -d -p 5000:5000 --restart always --name registry registry:2
docker push localhost:5000/tomcat-test:latest
docker-machine create -d virtualbox --engine-insecure-registry localhost:5000 dev2
docker pull <repo_name>
这已成功推送到注册表
现在我想使用Kubernetes从本地docker注册表中提取图像。为此,我必须提供图像在docker注册表中的位置的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发出的错误消息
现在我已经在网上进行了研究,有人建议创建一台新的docker机器,您可以在其中指定不安全注册表的IP。因此,我使用了以下命令:
docker run -d -p 5000:5000 --restart always --name registry registry:2
docker push localhost:5000/tomcat-test:latest
docker-machine create -d virtualbox --engine-insecure-registry localhost:5000 dev2
docker pull <repo_name>
然而,在遵循上述步骤之后,这仍然不起作用,我得到了相同的错误
有没有人找到了这个问题的解决方案?还有,我应该做些什么来防止这个问题出现
任何帮助都将不胜感激
谢谢。找到了解决此问题的方法: 如果您使用的是minikube,则可以使用“ssh”命令进入minikube虚拟机:
minikube ssh
这将打开外壳。在这里,您可以通过输入以下命令从docker hub中提取docker图像:
docker run -d -p 5000:5000 --restart always --name registry registry:2
docker push localhost:5000/tomcat-test:latest
docker-machine create -d virtualbox --engine-insecure-registry localhost:5000 dev2
docker pull <repo_name>
这应该会成功运行
请注意,为了使pod在kubernetes中成功运行,您必须确保Docker容器具有一个入口点,该入口点将无限期运行应用程序。如果没有,则您可能会在pod上看到“CrashBackLoop”状态,而不是“running”状态。找到了解决此问题的方法: 如果您使用的是minikube,则可以使用“ssh”命令进入minikube虚拟机:
minikube ssh
这将打开外壳。在这里,您可以通过输入以下命令从docker hub中提取docker图像:
docker run -d -p 5000:5000 --restart always --name registry registry:2
docker push localhost:5000/tomcat-test:latest
docker-machine create -d virtualbox --engine-insecure-registry localhost:5000 dev2
docker pull <repo_name>
这应该会成功运行
请注意,为了使pod在kubernetes中成功运行,您必须确保Docker容器具有一个入口点,该入口点将无限期运行应用程序。如果没有,则您可能会在pod上看到“CrashBackLoop”状态,而不是“running”状态