【问题标题】:How to push and deploy local image to kubernetes如何将本地镜像推送和部署到 Kubernetes
【发布时间】:2018-12-03 05:33:15
【问题描述】:

我已经开始学习 Kubernetes。所以,我已经安装了minikube,不知道如何将本地构建的镜像推送到kubernetes。我接下来要做的:

minikube start 
eval $(minikube docker-env) 
docker build -t some_image  

但是当我运行 docker images 时,没有我的图像。那么你能帮我,如何推送和部署我的本地 docker 镜像吗?

【问题讨论】:

    标签: docker kubernetes


    【解决方案1】:

    @fatcook 分享的答案是一个很好的参考点,一个更简单的解决方案会是。

    在构建 docker 映像之前,只需执行:eval $(minikube docker-env)

    它将导出以下变量。

    export DOCKER_TLS_VERIFY="1"
    export DOCKER_HOST="tcp://192.168.99.100:2376"
    export DOCKER_CERT_PATH="/Users/username/.minikube/certs"
    export DOCKER_API_VERSION="x.yy"
    # Run this command to configure your shell:
    # eval $(minikube docker-env)
    

    现在您可以构建图像docker build,它将在 minikube 实例上可用。

    这是一种简单的肮脏方式。

    【讨论】:

    • 好的,我试过了,但是当我运行 kubectl get pods 时,我的 pod 状态是 CrashLoopBackOff
    • 这意味着由于某种原因,您的容器正在启动然后崩溃。尝试执行 kubectl logs pod-namekubectl describe pod pod-name 并查看 pod 崩溃的原因。
    • 我遇到了类似的问题。在我的例子中,是在 yaml 中使用 :latest。显然 latest 是一种保留字。例如,如果对于我使用的版本 static :1.0 一切正常。
    【解决方案2】:

    您需要设置一个本地 docker 注册表,minikube 可以使用该注册表从中提取图像。 查看此链接https://blog.hasura.io/sharing-a-local-registry-for-minikube-37c7240d0615,它提供了如何实现这一点的详细说明。

    您也可以设置自己的registry 并在您的 yamls 中使用它来拉取图像。只需使用 localhost:5000/your-image-name 之类的标记您的图像并在 minikube 上运行您的 pod 之前推送它们

    【讨论】:

      猜你喜欢
      • 2015-08-04
      • 2019-01-12
      • 1970-01-01
      • 2019-11-26
      • 2021-12-27
      • 2022-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多