【问题标题】:How do I undo the command $ eval "$(docker-machine env blog)"如何撤消命令 $ eval "$(docker-machine env blog)"
【发布时间】:2015-08-13 13:39:52
【问题描述】:

我认为该命令将 $ docker 命令重定向到 docker 机器。现在我所有的 docker 命令都给了我一个错误FATA[0000] Couldn't read ca cert...,后面是我创建的 docker-machine 的路径。我怎样才能修复我的外壳?

【问题讨论】:

    标签: bash docker docker-machine


    【解决方案1】:

    我一直在寻找这个问题的答案很长一段时间。在 stackoverflow 上发布问题后不久,我意识到在终端输入 docker 在启动时提供的导出命令解决了我的问题。

    To connect the Docker client to the Docker daemon, please set:
    export DOCKER_HOST=tcp:// some IP address
    export DOCKER_CERT_PATH= some file path
    export DOCKER_TLS_VERIFY=1
    

    【讨论】:

      【解决方案2】:

      你要找的是:

      eval "$(docker-machine env -u)"
      

      它将取消设置DOCKER_* 变量。

      为了记录,这里是docker-machine env -u的输出:

      unset DOCKER_TLS_VERIFY
      unset DOCKER_HOST
      unset DOCKER_CERT_PATH
      unset DOCKER_MACHINE_NAME
      

      【讨论】:

      • 我收到消息主机“默认”不存在
      • 是的,但是上面并没有在运行 docker-machine 之前使环境处于状态... docker-machine 之前的值不会保存以供以后使用...它只是取消了 docker-machine 设置无需将 env 设置恢复为原始设置......我们需要在运行 docker-machine 之前运行 save-current-docker-settings ,它会发布 docker-machine 并用于恢复原始 docker 设置
      • 为我工作。我已经切换到 minikube docker 上下文。通过执行上面的 4 个未设置的命令,我能够回到我的“常规”上下文。我在 mac os High Sierra 上使用 Docker for mac community edition 18.06.1。
      • 运行此命令会给出command not found,而不是指使用eval $(docker-machine env -u) - 所以没有引号。也许这些年来情况发生了变化?
      • 当我在 Windows 上尝试这个时,运行 docker-machine env -u 会得到 'docker-machine' is not recognized as an internal or external command, operable program or batch file.
      【解决方案3】:

      我可以看到这是一篇旧帖子,但如果其他人遇到这个问题,像我这样的 docker 新手,这可以提供帮助。通过输入:

      eval $(docker-machine env nameOfVm) 
      

      您正在将当前的 shell 设置为在该 docker 机器中使用 docker。你可以检查你是否输入docker-machine ls 在活动选项卡下,该机器的状态从 - to * 更改。您还可以通过运行docker-machine active 来检查哪台机器处于活动状态。

      如果要撤消 eval,只需运行:

      eval $(docker-machine env -u)
      

      它将取消设置活动机器的变量(您不必指定机器的名称)。这都是在 macOS 下,但我认为它在 linux 上也应该是一样的。 您可以在此处阅读有关此内容的更多信息: Docker documentation: docker-machine env

      【讨论】:

        【解决方案4】:

        你也可以重启你的 shell。这将删除 minkube docker-env 导出的变量。

        【讨论】:

        • 这对我来说是一个简单易行的解决方法。
        【解决方案5】:

        您所要做的就是运行

        docker-machine env machine-name
        

        然后,复制并运行输出中的最后一段以设置或删除环境变量。

        在 Windows 中看起来像这样:

        eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env machine-name)
        

        如果已设置,docker 在尾部添加一个“-u”以简化任务。

        像这样在 Windows 中:

        eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env -u)
        

        就是这样。

        【讨论】:

        • 这似乎没有为现有答案添加任何内容。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-07-03
        • 1970-01-01
        • 2019-10-26
        • 2014-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多