Mount local directory into pod in minikube

Abu Hanifa picture Abu Hanifa · Jan 31, 2018 · Viewed 35.4k times · Source

I am running minikube v0.24.1. In this minikube, I will create a Pod for my nginx application. And also I want to pass data from my local directory.

That means I want to mount my local $HOME/go/src/github.com/nginx into my Pod

How can I do this?

apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
  - image: nginx:0.1
    name: nginx
    volumeMounts:
    - mountPath: /data
      name: volume
  volumes:
  - name: volume
    hostPath:
      path: /data

Answer

Shahriar picture Shahriar · Jan 31, 2018

You can't mount your local directory into your Pod directly.

First, you need to mount your directory $HOME/go/src/github.com/nginx into your minikube.

$ minikube start --mount-string="$HOME/go/src/github.com/nginx:/data"

Then If you mount /data into your Pod using hostPath, you will get you local directory data into Pod.

There is another way

Host's $HOME directory gets mounted into minikube's /hosthome directory. Here you will get your data

$ ls -la /hosthome/go/src/github.com/nginx

So to mount this directory, you can change your Pod's hostPath

hostPath:
  path: /hosthome/go/src/github.com/nginx