我正在我的Macbook上运行minikube。为了在minikube(VM(中构建Dockerfile,我使用以下命令将我的docker客户端指向minukube的docker守护进程
eval$(minikube docker env(
我能够在minikube上成功地构建图像,当我的工作完成时,我停止了minikube。
现在,当我试图运行命令"docker images"时,我得到了错误以下
"无法连接到位于tcp://:的Docker守护进程。Docker守护程序正在运行吗?">
我真的很感谢任何帮助来解决这个问题
注意:我估计它只会持续到终端的当前会话。但是仍然想知道有没有更好的方法来关闭终端的当前会话
如果您在这里查看docker-env
命令上的Minikube文档,或者运行带有--help
标志的命令,如下所示:
$ minikube docker-env --help
Sets up docker env variables; similar to '$(docker-machine env)'.
Options:
--no-proxy=false: Add machine IP to NO_PROXY environment variable
--shell='': Force environment to be configured for a specified shell: [fish, cmd, powershell, tcsh, bash, zsh],
default is auto-detect
-u, --unset=false: Unset variables instead of setting them
Usage:
minikube docker-env [flags] [options]
Use "minikube docker-env options" for a list of global command-line options (applies to all commands).
您会注意到--unset
标志。
尝试运行:
$ eval $(minikube docker-env --unset)
Docker for Mac不使用到守护进程的tcp连接,而是使用套接字(/var/run/docker.sock
(进行连接;检查shell中是否没有覆盖默认连接的DOCKER_HOST
环境变量集。
minikube似乎通过设置这三个变量来覆盖默认的docker设置
DOCKER_HOST=
DOCKER_TLS_VERIFY=1
DOCKER_CERT_PATH=/some/certs
请取消设置这些并停止minikube stop
,然后mac的docker将开始工作。
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 mac,docker unset。