【发布时间】:2019-02-18 00:07:43
【问题描述】:
在 Kubernetes minikube tutorial 中有这个命令来使用 Minikube Docker 守护进程:
$ eval $(minikube docker-env)
这个命令到底是做什么的,也就是minikube docker-env到底是什么意思?
【问题讨论】:
标签: docker kubernetes dockerfile minikube
在 Kubernetes minikube tutorial 中有这个命令来使用 Minikube Docker 守护进程:
$ eval $(minikube docker-env)
这个命令到底是做什么的,也就是minikube docker-env到底是什么意思?
【问题讨论】:
标签: docker kubernetes dockerfile minikube
minikube docker-env 命令返回一组 Bash 环境变量导出,以配置您的本地环境以重用 Minikube 实例中的 Docker 守护进程。
通过eval 传递此输出会导致 bash 评估这些导出并使其生效。
您可以通过省略评估步骤并直接运行minikube docker-env 来查看将在您的shell 中执行的特定命令。但是,这不会执行配置——需要为此评估输出。
这是一个工作流优化,旨在改善您构建和运行可在 minikube 环境中运行的 Docker 映像的体验。重复使用 minikube 的 Docker 守护进程以有效地使用 minikube 并不是强制性的,但这样做会显着提高代码-构建-测试周期的速度。
在正常的工作流程中,您的主机上会有一个与 minikube 中的独立的 Docker 注册表,这需要以下过程来在 minikube 中构建和运行 Docker 映像:
通过在 Minikube 中重新使用 Docker 注册表,这变成:
更多用途详情请见minikube docs。
【讨论】:
minikube docker-env
你会看到那里提到了一些environment variables :)
这些变量将帮助您的docker CLI (where you write docker commands)连接与由 minikube 创建的 VM 中的 docker 守护进程!
现在,要将 Docker CLI 连接到 docker daemon inside the VM,您需要运行:eval $(minikube docker-env)
这将临时(对于该终端)将 CLI 连接到 VM 内的 docker 守护进程:)
现在,尝试docker ps,你可以看到VM内部创建的所有容器(只有在k8的集群中做了一些工作才会显示)
由于 docker-env 的那些环境变量,这一切都是可能的
【讨论】:
This will temporarily(for that terminal) 我花了很多时间试图找到,如何关闭docker-env选项:D答案只是重新运行终端:)
了解$ eval $(minikube docker-env) 所做的一种方法是了解我们想在本地机器上构建一个 docker 映像,然后将它们部署到 minikube 环境中。
正如其他人所解释的那样,这个命令使它更容易做到这一点。
minikube docker-env 返回的配置
minikube docker-env --unset,通过取消设置这些 docker 配置来断开你的 minikube env
如果不将 docker 配置设置为 minikube env,那么在本地构建映像并在 minikube env 的容器中运行它会有点乏味。
如果您正在运行 minikube,您可以通过 ssh 进入 env 并查看其中运行的所有 docker 映像。
【讨论】:
你应该在运行 'minikube start' 后运行这个命令
eval $(minikube docker-env)这个命令让你将你的cli tool连接到Kubernetes集群的docker-env
【讨论】: