我认为该命令将命令重定向$ docker
到 docker 机器。现在我所有的 docker 命令都给了我一个错误FATA[0000] Couldn't read ca cert...
,后面是我创建的 docker-machine 的路径。我怎样才能修复我的外壳?
5 回答
您正在寻找的是:
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
你也可以重新启动你的shell。这将删除minkube docker-env
导出的变量。
我可以看到这是一篇旧帖子,但如果其他人遇到这个问题,像我这样的 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 文档:docker-machine env
我一直在寻找这个问题的答案很长一段时间。在 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
你所要做的就是跑
docker-machine env machine-name
然后,复制并运行输出中的最后一段以设置或删除 env 变量。
在 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)
就这样。