需要帮助将docker客户端指向在我的笔记本电脑上运行的docker守护进程



我正在我的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。

最新更新