minikube でローカルなdocker image が見つからない問題

$ docker images

REPOSITORY TAG IMAGE ID CREATED SIZE
debug latest 60cee2039af9 30 minutes ago 393MB

とローカルに debug という名前の docker イメージは作成できているし、動作確認もできている。

のイメージを minikube から利用したいのだが、イメージが見つからないエラーになる。

 

$ minikube start

$ cat debug-pod.yml

apiVersion: v1
kind: Pod
metadata:
name: debug
namespace: default
labels:
app: weblog
env: dev_web_app
spec:
containers:
- name: debug
image: debug
imagePullPolicy: Never
command:
- "sh"
- "-c"
args:
- |
while true
do
sleep 5
done
------------------------------------------------------------------------------------------
$ kubectl apply -f debug-pod.yml
$ kubectl get pod -o wide
 
AME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
debug 0/1 ErrImageNeverPull 0 31m 172.17.0.3 minikube <none> <none>
 
と、言う具合。ローカルからイメージを探す設定にしているが、みつからない、というエラー。
そこまではわかったが対策がわからない。
ぐぐってみたところ、同じように困っているひとたちを見つけた。

qiita.com

しかし、この対策は、ローカルなイメージを敢えて一旦 Dockerhub へ登録し、Dockerhub から

イメージを pull してくる、というもの。負けた感じがする。

更にググった。

medium.com

kubernetes.io

 

$ minikube docker-env

このコマンドで、minikube に対し、ローカルのdocker が使っている諸々の値を環境変数

設定するようだ。シェルとして fish を使っている場合、

$ eval (minikube docker-env)

とする。この状態で、docker image を作成する。

$ docker build -t debug .

ビルド後

$ kubectl get pod -o wide 22:25:30
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
debug 1/1 Running 0 66m 172.17.0.3 minikube <none> <none>

 

無事に Running になった!