docker - Docker:无法提取图像(收到长度为20527的超大记录

标签 docker kubernetes boot2docker docker-machine

尝试使用Kubernetes(容器管理平台)从本地注册表中提取docker镜像时遇到问题。

当前的情况是我将Docker镜像存储在运行于地址192.168.99.103的Docker VM中。我正在Windows机器上运行docker。

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

接下来,我使用以下命令创建并运行本地注册表:

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

在这一点上,我像这样标记图像:
docker tag tomcat-test:dockerfile localhost:5000/tomcat-test:latest

最后,我使用以下命令推送到本地注册表:
docker push localhost:5000/tomcat-test:latest

这已成功推送到注册表。

现在我想使用Kubernetes从本地docker注册表中提取信息。为此,我必须提供镜像在docker注册表中的位置的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-machine create -d virtualbox --engine-insecure-registry localhost:5000 dev2

但是,按照上面的步骤操作后,此操作仍然无效,并且出现了相同的错误。

有没有人遇到这个问题的解决方案?还有什么我应该做些别的事情来防止出现此问题?

任何帮助,将不胜感激。

谢谢。

最佳答案

找到了解决方法:

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

minikube ssh

这将启动 shell 。在这里,您可以通过输入命令从Docker Hub提取Docker镜像:
docker pull <repo_name>

这样,您便可以将镜像拉入minikube VM。

之后,下一步是退出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容器具有一个可以无限期运行应用程序的入口点。如果不是,那么您可能会在Pod上看到“CrashBackLoop”状态,而不是“正在运行”状态。

关于docker - Docker:无法提取图像(收到长度为20527的超大记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44679516/

相关文章:

docker - Google Container Registry将图片插入炼狱

node.js - 在 docker 中运行 npm update,而不使用该特定更新的缓存

sql-server - 带有 PersistentVolumeClaim 的 SQL Server pod

kubernetes - Kubernetes PVC请求和物理存储

docker - 启动Docker守护程序时出错

docker - 主机卷未安装在 'Docker-compose up' 上

macos - 禁止从 Docker for Mac 上的 Docker 容器出站

linux - 在 Docker 容器中的 cron 中执行服务时出现问题?

kubernetes - 如何从 kubernetes pod 获取 configmap

docker - Docker:无法访问容器主机/端口