minikube + Docker卷?

时间:2017-08-30 15:42:15

标签: docker kubernetes docker-volume minikube

使用Mac上的常规原生Docker,没有minikube,我可以从https://docs.docker.com/engine/admin/volumes/volumes/#start-a-container-with-a-volume获取官方示例

运行:

docker run -d \
  -it \
  --name devtest \
  --mount source=myvol2,target=/app \
  nginx:latest

然后我可以运行docker inspect devtest并看到挂载已创建:

"Mounts": [
    {
        "Type": "volume",
        "Name": "myvol2",
        "Source": "/var/lib/docker/volumes/myvol2/_data",
        "Destination": "/app",
        "Driver": "local",
        "Mode": "",
        "RW": true,
        "Propagation": ""
    }
],

我可以运行docker volume ls并查看myvol2

如果我使用最新的minikube,目前是v0.22.3,带有一个新的minikube本地VM:

minikube delete
rm -rf ~/.kube 
rm -rf ~/.minikube 
minikube start

Starting local Kubernetes v1.7.5 cluster...

然后使用minikube VM版本的Docker和eval $(minikube docker-env),然后重复前面的相同命令:

docker run -d \
  -it \
  --name devtest \
  --mount source=myvol2,target=/app \
  nginx:latest

然后docker inspect devtest返回一个空的坐骑部分:"Mounts": []。并且docker volume ls显示没有myvol2。换句话说,Docker卷似乎根本不适用于minikube。

仅供参考,以下是使用Minikube v0.22.3时docker version的输出:

Client:
 Version:      17.06.2-ce
 API version:  1.23
 Go version:   go1.8.3
 Git commit:   cec0b72
 Built:        Tue Sep  5 20:12:06 2017
 OS/Arch:      darwin/amd64

Server:
 Version:      1.12.6
 API version:  1.24 (minimum version )
 Go version:   go1.6.4
 Git commit:   78d1802
 Built:        Wed Jan 11 00:23:16 2017
 OS/Arch:      linux/amd64
 Experimental: false

1 个答案:

答案 0 :(得分:0)

https://github.com/kubernetes/minikube/issues/3001#issuecomment-446055883可能是答案。在这种情况下,音量应为minikube env。