Kubernetes Minikube Docker尝试并失败地拉取镜像

13
我有一个名为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,但我不明白为什么它找不到该镜像。

它显示部署已创建。

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

看起来它工作得很好


安装Minibuke后,机器的IP地址是否发生了变化?它第一次运行时是否正常,之后因为IP地址变更而出现故障? - mon
可能是 如何在Kubernetes中使用本地Docker镜像? 的重复问题。 - Shahriar
1个回答

12

镜像docker-hello-world:latest的版本标签是latest,这表示默认的ImagePullPolicyAlways(请参见v1.9.x及其后的pkg/apis/core/v1/defaults.go)。它将尝试从hub拉取镜像而不使用已经存在的镜像。

一个选项是设置特定的标签而不是latest


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接