如何在kubernetes pod中运行docker镜像?
我的队友定义了一个新的docker镜像并将其推送到我团队的私人注册表中。我拥有在我们的kubernetes集群中运行的一些代码,我们需要让我的代码有效地docker run gcr.io/our-project/teammates-image:latest
。
我一直在寻找在我们的kubernetes吊舱上启用docker-in-docker,但我没有运气。我目前正在尝试minikube
,每当我尝试docker run
时,我都会:docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
。
我已经补充道
securityContext:
privileged: true
到我的容器规格。我怀疑我需要更多的配置,但还没有想出什么。
我还试图评估我是否可以从kubernetes pod中kubectl run --image=gcr.io/our-project/teammates-image:lastest
。
是否有正确的"从kubernetes pod中运行docker镜像的方法?如何使用docker-in-docker运行图像?
答案 0 :(得分:4)
以下是我最终使用的解决方案,适用于将来偶然发现这种情况的任何人。
在需要运行其他docker镜像的主docker镜像中安装kubectl
。我按照these docs执行了此操作。安装kubectl
后,它应该能够自动与其运行的群集进行交互,并且不需要额外的身份验证。
接下来,要运行teammtes-image:latest
泊坞窗映像,您可以在python中执行以下操作:
import subprocess subprocess.run(["kubectl", "run", "teammates-image", "--image", "gcr.io/our-project/teammates-image:lastest", "--attach", "--restart", "Never", "--rm"])
这应该: