Posted at

minikubeでローカルのdocker imageを使う

More than 1 year has passed since last update.

k8sクラスタを試作してる段階では、アプリのdockerイメージをいちいちprivate registryにpushしたりするのは面倒です。

minikubeを使ってる場合、docker buildだけしてローカルのimageを簡単に扱えるのでメモ。


環境


  • Mac OS X 10.11.6

  • minikube version: v0.14.0

  • Docker version 1.12.5 (Docker for Mac)


やり方


1. minikube VM上のdockerを使うよう設定

$ eval $(minikube docker-env)

これでDOCKER_TLS_VERIFY, DOCKER_HOST, DOCKER_CERT_PATH, DOCKER_API_VERSIONが設定される。


2. dockerイメージをbuild

タグはlatest以外にする必要があることに注意。でないと、k8sはregistryからイメージをpullしてこようとしてしまいます。

(http://kubernetes.io/docs/getting-started-guides/minikube/#reusing-the-docker-daemon)

$ echo "FROM nginx" >> Dockerfile

$ docker build -t example/nginx:v1.0 .


3. minikubeでPodを起動


example.yaml

apiVersion: v1

kind: Pod
metadata:
name: example
spec:
containers:
- name: nginx
image: "example/nginx:v1.0"
imagePullPolicy: IfNotPresent


imagePullPolicy: IfNotPresentがポイントです。

このようなPodを定義してcreateすると、

$ kubectl create -f example.yaml

pod "example" created
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
example 1/1 Running 0 17s

ちゃんと立ち上がります。