Full lesson
Explore the full explanation, examples, and visuals at your own pace.
Terminal
You built the image. Kubernetes says it doesn't exist. Look at the terminal: docker build finishes and tags myapp:dev successfully. But when we check the pods, the myapp pod shows zero of one ready, with a status of ErrImagePull. The cluster can't get that image.
$ docker build -t myapp:dev .
Successfully tagged myapp:dev
$ kubectl get pods
NAME READY STATUS RESTARTS
myapp-7d9f4 0/1 ErrImagePull 0Two separate image stores
Your laptop's Docker holds myapp:dev, but the cluster node keeps its own separate image store, and that one is empty. So the node looks for the image elsewhere, tries a public registry, and finds nothing, because you never pushed it there.
Get the image onto the node
To fix it, copy the image onto the node. kind load docker-image does that for kind, and minikube image load does it for minikube. Or push to a registry the cluster can reach. And avoid the latest tag, since by default it forces a registry pull.
# kind
kind load docker-image myapp:dev
# minikube
minikube image load myapp:dev
# or push to a registry the cluster can reach
docker push registry.example.com/myapp:devYour laptop had the image. Your cluster never got the memo.
Your laptop and your node keep separate image shelves. Your laptop had the image. Your cluster never got the memo.
