minikube docker-env是什么意思?

Raf*_*afa 25 docker kubernetes dockerfile minikube

在Kubernetes minikube教程中,有一个使用Minikube Docker守护进程的命令:

$ eval $(minikube docker-env)
Run Code Online (Sandbox Code Playgroud)

这个命令到底是做什么的,也就是说究竟是什么minikube docker-env意思?

Cos*_*age 25

该命令minikube docker-env返回一组Bash环境变量导出,以配置您的本地环境以在Minikube实例中重用Docker守护程序.

通过此输出eval会导致bash评估这些导出并使它们生效.

您可以通过省略评估步骤并minikube docker-env直接运行来查看将在shell中执行的特定命令.但是,这不会执行配置 - 需要为此评估输出.


这是一个工作流程优化,旨在改善您构建和运行Docker镜像的体验,您可以在minikube环境中运行这些镜像.重新使用minikube的Docker守护进程有效地使用minikube并不是强制性的,但这样做会显着提高代码构建测试周期的速度.

在正常的工作流程中,您的主机上将有一个单独的Docker注册表与minikube中的注册表相同,这需要以下过程在minikube中构建和运行Docker镜像:

  1. 在主机上构建Docker镜像.
  2. 使用远程注册表或minikube实例的注册表重新标记本地计算机的映像注册表中的构建映像.
  3. 将图像推送到远程注册表或minikube.
  4. (如果使用远程注册表)使用适当的权限配置minikube以从注册表中提取图像.
  5. 在minikube中设置部署以使用图像.

通过在Minikube中重用Docker注册表,这将成为:

  1. 使用Minikube的Docker实例构建Docker镜像.这将图像推送到Minikube的Docker注册表.
  2. 在minikube中设置部署以使用图像.

有关此目的的更多详细信息,请参见minikube文档.


Ash*_*ari 8

尝试运行minikube docker-env

你会看到environment variables那里提到了一些:)

这些变量将帮助您与minikube 创建的VM中的 docker 守护进程docker CLI (where you write docker commands)连接!


现在,要将 Docker CLI 连接到docker daemon inside the VM您需要运行:eval $(minikube docker-env)

这将暂时(对于该终端)将 CLI 连接到 VM 内的 docker 守护进程:)


现在,尝试这样做docker ps,您可以看到VM内创建的所有容器(仅当您在k8集群中完成一些工作时才会显示)

由于 docker-env 的环境变量,这一切都是可能的

  • @Mikhail_Sam,您还应该能够通过运行“eval $(minikube docker-env --unset)”来关闭“docker-env” (4认同)
  • 感谢您的“这将暂时(对于该终端)”我花了很多时间试图找到如何关闭“docker-env”选项:D答案只是重新运行终端:) (3认同)