首页 > 解决方案 > 将 Docker 运行转换为 Kubernetes 的问题

问题描述

我在将 docker 设置转换为 kubernetes 时遇到了一些问题。我已经阅读了 docker 用户的 kubectl,已经设置了 minikube,并且正在尝试使用 kubernetes 自动扩展我的 docker 应用程序。但是我在运行它时遇到了一些麻烦。

我正在尝试使用我在云中设置的数据库的 centos 映像上的 python 烧瓶应用程序创建一个容器

在 docker 中,我只会使用 docker build 。-tag 然后使用 docker run 来设置我的容器。像这样:

在此处输入图像描述

这会给我一个端口 5000 上的容器(对于数据库,我必须使用主机网络,因为它需要一个 ip 才能使用。设置 localhost 127.0.0.1:5000 似乎不起作用,但这本身就是另一个问题)

当我为 docker 用户阅读 Kubectl 文档时,我似乎可以做与 Kubernetes 中的 docker 几乎相同的事情。所以我正在尝试这个。

我还没有弄清楚如何在 kubernetes 中使用 --network host 但我想只是运行它,看看它是否给出了错误。它确实做到了。它似乎无法拉出图像。但码头工人可以。这里出了什么问题? 在此处输入图像描述

过了一会儿它就到了。

在此处输入图像描述

我什至还没有尝试过水平自动缩放,也不了解 docker-file 转换。但我应该能够运行容器对吗?

编辑:我使用 Windows 来生成屏幕截图。

我正在运行的命令:

docker run --network host -d hu-simple:latest

我得到的输出:

一个 docker 守护程序字符串,因为它为我创建了一个 docker 容器

我正在尝试的 Kubernetes 中的命令:

kubectl run --image=hu-simpel:最新的 hu-simpel --port=5000

我得到的输出:

deployment.apps/hu-simpel 创建

但是当我尝试 kubectl get all 时:

一段时间后我得到: ErrImagepull 和 ImagePullBackOff 。

我不认为我正在使用 kubernetes 部署 yaml,因为我只是想在 kubernetes 上运行 docker 映像。我没有使用 docker-compose 在 kubernetes 中创建它,只是尝试运行 docker 映像。但是,如果我弄错了,请告诉我。

标签: pythondockerflaskkubernetesdocker-compose

解决方案


发生这种情况是因为您的 minikube 实例无法访问您的 Docker 守护程序。换句话说,您的 Kubernetes 对您使用主机 Docker 构建的映像一无所知。

为了解决这个问题,你有这个命令:minikube docker-env. 这会将 Docker 中的所有内容导出到您的 minikube 实例,这意味着您将能够重用您在主机中构建的图像。

当你完成后,你可以做docker-machine env -u


推荐阅读