【问题标题】:What does minikube docker-env mean?minikube docker-env 是什么意思?
【发布时间】:2019-02-18 00:07:43
【问题描述】:

在 Kubernetes minikube tutorial 中有这个命令来使用 Minikube Docker 守护进程:

$ eval $(minikube docker-env)

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

【问题讨论】:

    标签: docker kubernetes dockerfile minikube


    【解决方案1】:

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

    通过eval 传递此输出会导致 bash 评估这些导出并使其生效。

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


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

    在正常的工作流程中,您的主机上会有​​一个与 minikube 中的独立的 Docker 注册表,这需要以下过程来在 minikube 中构建和运行 Docker 映像:

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

    通过在 Minikube 中重新使用 Docker 注册表,这变成:

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

    更多用途详情请见minikube docs

    【讨论】:

    【解决方案2】:

    尝试运行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答案只是重新运行终端:)
    【解决方案3】:

    了解$ eval $(minikube docker-env) 所做的一种方法是了解我们想在本地机器上构建一个 docker 映像,然后将它们部署到 minikube 环境中。 正如其他人所解释的那样,这个命令使它更容易做到这一点。

    • 告诉 minikube 使用从minikube docker-env 返回的配置
    • 然后您可以在本地构建您的 docker 镜像,并能够在 minikube 环境中访问它
    • 一旦你完成构建,你可以取消设置 docker env,即如果你运行minikube docker-env --unset,通过取消设置这些 docker 配置来断开你的 minikube env

    如果不将 docker 配置设置为 minikube env,那么在本地构建映像并在 minikube env 的容器中运行它会有点乏味。

    如果您正在运行 minikube,您可以通过 ssh 进入 env 并查看其中运行的所有 docker 映像。

    【讨论】:

      【解决方案4】:

      你应该在运行 'minikube start' 后运行这个命令

      eval $(minikube docker-env)这个命令让你将你的cli tool连接到Kubernetes集群的docker-env

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多