Mac OS X sudo docker无法连接到docker守护进程.是在此主机上运行的docker守护程序



我安装了docker,似乎出现了一些问题。

$ docker ps

容器ID镜像命令创建的状态端口名称

$sudo docker ps

无法连接到Docker守护进程。docker守护程序是否正在该主机上运行?

我该怎么办?

您需要设置您的shell以使用Docker: eval $(docker-machine env default) 这个命令是从哪里来的?运行docker-machine env default,您会看到如下内容:

$ docker-machine env default
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/eric/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell: 
# eval $(docker-machine env default)

此外,您可能需要也可能不需要通过以下方式预先启动Docker主机: docker-machine start default

docker机器是OSX的遗留设备,可与VirtualBox一起操作。你应该做的是完全摆脱它,然后你应该下载最新版本的docker,即docker for Mac

在安装docker for Mac之前,请确保从Mac中删除了传统的docker和docker机器。如果您不这样做,那么在安装后,传统的docker二进制文件将受到青睐,并且您仍然会收到错误消息,其中表示无法连接到docker守护进程。

我遇到了同样的问题,我通过以下步骤解决了它:

docker-machine restart

退出终端(或iTerm2等)并重新启动

eval $(docker-machine env default)

我刚刚遇到了这个问题。我用的是旧的码头工人机器,我换成了mac最新的码头工人。运行eval $(docker-machine env default) 会设置一些环境变量。

为了解决我的问题,我取消设置那些环境变量。。。

unset DOCKER_HOST DOCKER_MACHINE_NAME DOCKER_TLS_VERIFY DOCKER_CERT_PATH

如果您正在使用docker工具箱,请在运行docker ps命令以设置环境之前键入

docker-machine env default

让它在新的终端上持久化&重新启动将其放入bash_profile文件

echo "eval $(docker-machine env default)" >> ~/.bash_profile

从您的环境中删除export DOCKER_HOST....(.bashrc、.bash_profile等),重新启动shell/terminal,对我有效。

  1. 如果未安装docker桌面,请安装。(https://docs.docker.com/desktop/install/mac-install/)
  2. 运行docker桌面。这将使docker在后台运行
  3. 使用docker ps,它将按预期工作

最新更新