【问题标题】:How to run docker image in Kubernetes pod?如何在 Kubernetes pod 中运行 docker 镜像?
【发布时间】:2018-10-04 02:23:33
【问题描述】:

如何在 kubernetes pod 中运行 docker 镜像?

我的一个队友定义了一个新的 docker 镜像并将其推送到我团队的私有注册表中。我拥有一些在我们的 kubernetes 集群中运行的代码,我们需要让我的代码有效地docker run gcr.io/our-project/teammates-image:latest。

我一直在考虑在我们的 kubernetes pod 上启用 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 运行映像?

【问题讨论】:

    标签: docker kubernetes docker-in-docker


    【解决方案1】:

    这是我最终为将来可能偶然发现此问题的任何人使用的解决方案。

    在需要运行其他 docker 镜像的主 docker 镜像中安装 kubectl。我通过关注these docs 做到了这一点。一旦您安装了kubectl,它应该能够自动与运行它的集群进行交互,并且不需要额外的身份验证。

    接下来,要运行teammtes-image:latest docker 映像,您可以在 python 中执行以下操作:

    导入子流程 subprocess.run(["kubectl", "run", "teammates-image", "--image", "gcr.io/our-project/teammates-image:lastest", "--attach", "--重新启动”、“从不”、“--rm”])

    这应该:

    1. 创建一个 pod
    2. 运行镜像
    3. 返回容器的返回码
    4. 完成后删除 pod

    【讨论】:

    猜你喜欢
    • 2018-09-06
    • 2018-08-09
    • 2022-10-15
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多