在Ubuntu中启动minikube会删除本地docker映像

时间:2019-07-27 18:46:28

标签: docker kubernetes docker-compose

我有一个dockerized应用程序。当我通过docker-compose up运行它时,它运行正常,并显示在docker images中。但是,当我尝试使用vm-driver=None启动minikube集群时,该集群会出错并且无法启动。但是,当我退出docker应用程序并再次启动minikube集群时,该集群将成功启动。但是后来我找不到我刚运行的docker应用程序映像。相反,我发现如下图

k8s.gcr.io/coredns                         1.2.2               367cdc8433a4        5 weeks ago         39.2MB
k8s.gcr.io/kubernetes-dashboard-amd64      v1.10.0             0dab2435c100        5 weeks ago         122MB
k8s.gcr.io/kube-proxy-amd64                v1.10.0             bfc21aadc7d3        6 months ago        97MB
k8s.gcr.io/kube-controller-manager-amd64   v1.10.0             ad86dbed1555        6 months ago        148MB
k8s.gcr.io/kube-apiserver-amd64            v1.10.0             af20925d51a3        6 months ago        225MB
k8s.gcr.io/kube-scheduler-amd64            v1.10.0             704ba848e69a        6 months ago        50.4MB

这是预期的行为吗?如果是,原因是什么?

minikube start --vm-driver = none

更新:我正在使用Ubuntu VM。

2 个答案:

答案 0 :(得分:0)

来自Minikube documentation

  

minikube旨在在专用VM上运行Kubernetes,并假定它完全控制正在执行的机器。使用none驱动程序,minikube和Kubernetes在隔离度非常有限的环境中运行,这可能导致:

     
      
  • 安全性降低
  •   
  • 降低的可靠性
  •   
  • 数据丢失
  •   

答案 1 :(得分:0)

Minikube会删除您的docker映像是不期望的行为。我试图重现您的问题。我的Ubuntu VM上有一些docker映像。

$ sudo docker images
REPOSITORY                                TAG                 IMAGE ID            CREATED             SIZE
nginx                                     latest              e445ab08b2be        13 days ago         126MB
busybox                                   latest              db8ee88ad75f        2 weeks ago         1.22MB
perl                                      latest              bbac4a88d400        3 weeks ago         889MB
alpine                                    latest              b7b28af77ffe        3 weeks ago         5.58MB

后来尝试运行minikube。

$ sudo minikube start --vm-driver=none
?  minikube v1.2.0 on linux (amd64)
?  Tip: Use 'minikube start -p <name>' to create a new cluster, or 'minikube delete' to delete this one.
...
⌛  Verifying: apiserver proxy etcd scheduler controller dns
?  Done! kubectl is now configured to use "minikube"

我仍然拥有所有docker映像,并且minikube可以按预期工作。

$ kubectl get pods -n kube-system
NAME                               READY   STATUS    RESTARTS   AGE
coredns-5c98db65d4-4vd2q           1/1     Running   8          21d
coredns-5c98db65d4-xjx22           1/1     Running   8          21d
etcd-minikube                      1/1     Running   5          21d
...
$ sudo docker images
REPOSITORY                                TAG                 IMAGE ID            CREATED             SIZE
nginx                                     latest              e445ab08b2be        13 days ago         126MB
busybox                                   latest              db8ee88ad75f        2 weeks ago         1.22MB
perl                                      latest              bbac4a88d400        3 weeks ago         889MB
alpine                                    latest              b7b28af77ffe        3 weeks ago         5.58MB

从minikube退出后,我仍然拥有所有docker映像。

正如您在原始线程中提到的那样,您使用了minikube start --vm-driver=none。如果您在不使用sudo的情况下使用minikube start,则会收到类似以下错误:

$ minikube start --vm-driver=none
?  minikube v1.2.0 on linux (amd64)
?  Unable to load config: open /home/$user/.minikube/profiles/minikube/config.json: permission denied

或者如果要停止不带sudo的minikube:

$ minikube stop
?  Unable to stop VM: open /home/$user/.minikube/machines/minikube/config.json: permission denied
?  Sorry that minikube crashed. If this was unexpected, we would love to hear from you:
?  https://github.com/kubernetes/minikube/issues/new

请尝试将 sudo 与minikube命令一起使用。 让我知道是否有帮助。如果没有,请提供您的错误消息。