LoginSignup
48

More than 5 years have passed since last update.

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

Posted at

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

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
48