Minikube和Docker-有冲突吗?

时间:2019-03-25 14:02:06

标签: docker kubernetes minikube

我已经使用Docker一段时间了,以进行一些开发。现在,我正在尝试使用Kubernetes学习一些更高级的知识。 在某些课程中,我找到了应该运行的信息

eval $(minikube docker-env)

这将注册一些环境变量:DOCKER_TLS_VERIFYDOCKER_HOSTDOCKER_CERT_PATHDOCKER_API_VERSION。会怎么办?这不会破坏我每天在主机上使用默认值的日常工作吗?

还可以将本地Docker的上下文/配置切换为kubectl config use-context吗?

2 个答案:

答案 0 :(得分:2)

该命令指向Docker的环境变量,以使用Minikube VM内托管的Docker守护进程,而不是在主机上或Docker Desktop管理的VM中本地运行的守护进程。这意味着您将无法查看或运行切换前拥有的任何图像或Docker本地卷(这是一个单独的VM)。就像您可以$(minikube docker-env)“切换到” Minkube VM的Docker一样,您可以$(minikube docker-env -u)“切换回”。

仅当您在非Linux主机上并通过VM获得Docker时,才使用此选项才有意义;这样一来,您可以共享一个Minikube / Docker VM,而不必启动两个单独的VM,一个用于Docker,另一个不用于。

如果要使用Minikube,则应使用与使用真实的远程Kubernetes集群相同的方式使用它:设置Docker注册表,在其中docker build && docker push镜像,然后在部署中引用它眼镜。在Kubernetes中获取实时代码重装之类的卷积是棘手的,不能在任何其他Kubernetes设置上使用,也不是您在生产中运行的。

答案 1 :(得分:0)

上述命令将仅操纵当前的shell。打开一个新的端口将使您能够继续使用正常的工作流程,因为docker CLI例如将默认连接到/var/run/docker.sock上的守护程序套接字。

我不知道有什么工具可以让您使用单个命令来切换这些设置,并且可以根据上下文名称使用kubectl来进行切换。但是,您可以编写一个别名。对于bash,您可以例如执行:

$ echo 'alias docker-context-a="eval \$(minikube docker-env)"' >> ~/.bashrc