Kubernetes Minikube Docker尝试并且未能拉出图像

时间:2018-02-02 23:09:01

标签: image docker kubernetes minikube

我有一个名为docker-hello-world的docker镜像 - 它所做的就是使用JRE将Hello World打印到日志中。经过测试,它可以正常工作。

然后,我将图像导入Kubernetes Docker并运行 - 仍然没有问题。

docker images -a
REPOSITORY                                             TAG                 IMAGE ID            CREATED             SIZE
docker-hello-world                                     latest              9a161d166742        20 hours ago        83.17 MB
  1. 当我尝试使用kubectl run docker-hello-world --image=docker-hello-world:latest部署到Kubernetes时出现问题 - 我尝试了图像ID,但我无法理解为什么它找不到图像。
  2. 它表示部署已创建。

    kubectl get deployments
    NAME                 DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
    docker-hello-world   1         1                1                   0           24s
    
    kubectl get pods
    NAME                                                READY     STATUS         RESTARTS   AGE
    docker-hello-world-67c745cff4-sv77d   0/1       ErrImagePull   0          43s
    

    日志:

    kubectl logs docker-hello-world-67c745cff4-sv77d
    Error from server (BadRequest): container "docker-hello-world" in pod "docker-hello-world-67c745cff4-sv77d" is waiting to start: trying and failing to pull image
    

    我不确定为什么它找不到图像。

    但如果我在Minikube内做的话:

    docker build -t dummy:v1 ~/eclipse-workspace/HelloWorld/bin/  
    

    (我真的不想再生成图像)

    docker images
    REPOSITORY                                             TAG                 IMAGE ID            CREATED             SIZE
    dummy                                                  v1                  beae3bfd2327        32 seconds ago      83.17 MB
    
    kubectl run --image=dummy:v1 dummy
    deployment "dummy” created
    
    kubectl get deployments
    NAME           DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
    dummy          1                1           1                   0           11s
    
    kubectl get pods
    NAME                            READY     STATUS      RESTARTS   AGE
    dummy-8496dd7d84-t4h66          0/1       Completed   4          1m
    
    kubectl logs dummy-8496dd7d84-t4h66
    Hello, World
    

    似乎工作正常

1 个答案:

答案 0 :(得分:3)

图片print(rats)的版本标记为docker-hello-world:latest,表示默认latestImagePullPolicy(请参阅Always了解v1.9.x及后)。它将尝试从集线器中提取图像,而不是使用已存在的图像。

一个选项是设置特定标记而不是pkg/apis/core/v1/defaults.go