使用sudo运行时无法连接到Docker守护程序

jav*_*dba 6 macos docker

我的Docker服务已启动并正在运行.但是,当试图通过运行Docker来使用Docker时sudo,例如:

12:40:26/~ $ sudo docker pull fluxcapacitor/pipeline
Using default tag: latest
Run Code Online (Sandbox Code Playgroud)

我有以下错误:

Warning: failed to get default registry endpoint from daemon (Cannot connect to 
the Docker daemon. Is the docker daemon running on this host?). Using system 
default: https://index.docker.io/v1/
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Run Code Online (Sandbox Code Playgroud)

请注意,我已经按照Mac OS X上的答案sudo docker无法连接到Docker守护程序.docker守护程序是否在此主机上运行?

如下:

docker-machine启动默认值

12:40:36/~ $ docker-machine start default
Starting "default"...
Machine "default" is already running.
Run Code Online (Sandbox Code Playgroud)

码头工人

12:41:20/~ $ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
Run Code Online (Sandbox Code Playgroud)

那么还有什么需要做的呢?

这是:

$ docker --version
Docker version 1.11.2, build b9f10c9
Run Code Online (Sandbox Code Playgroud)

El Capitan.

输出 docker-machine env default

$ eval "$(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/macuser/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
Run Code Online (Sandbox Code Playgroud)

kha*_*tam 13

以下命令导出后续docker命令使用的一些环境变量:

eval "$(docker-machine env default)"
Run Code Online (Sandbox Code Playgroud)

但是,如果使用sudo启动docker,则docker可执行文件无法访问导出的环境变量.你可以通过传递-Eflag来使它工作sudo,例如:

sudo -E docker pull fluxcapacitor/pipeline
Run Code Online (Sandbox Code Playgroud)

但更容易的选择是使用没有root的docker,如:

docker pull fluxcapacitor/pipeline
Run Code Online (Sandbox Code Playgroud)