47
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

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

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

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
47
Help us understand the problem. What are the problem?