我有一个名为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
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
看来还可以
最佳答案
图像docker-hello-world:latest
的版本标签为latest
,它指示默认的ImagePullPolicy
为Always
(有关v1.9.x及更高版本,请参见pkg/apis/core/v1/defaults.go
)。它将尝试从集线器中提取图像,而不使用已存在的图像。
一个选项是设置特定的标签,而不是latest
。
关于image - Kubernetes Minikube Docker尝试提取镜像失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48592157/