簡體   English   中英

使用sudo運行時無法連接到Docker守護程序

[英]Cannot connect to the Docker daemon when running with sudo

我的Docker服務已啟動並正在運行。 但是當試圖通過運行sudo來使用Docker時,例如:

12:40:26/~ $ sudo docker pull fluxcapacitor/pipeline
Using default tag: latest

我有以下錯誤:

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?

請注意,我已經按照Mac OS X上的答案sudo docker無法連接到Docker守護程序。 docker守護程序是否在此主機上運行?

如下:

docker-machine啟動默認值

12:40:36/~ $ docker-machine start default
Starting "default"...
Machine "default" is already running.

碼頭工人

12:41:20/~ $ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

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

這是:

$ docker --version
Docker version 1.11.2, build b9f10c9

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"

以下命令導出后續docker命令使用的一些環境變量:

eval "$(docker-machine env default)"

但是,如果使用sudo啟動docker,則docker可執行文件無法訪問導出的環境變量。 您可以通過將-E標志傳遞給sudo來使其工作,例如:

sudo -E docker pull fluxcapacitor/pipeline

但更容易的選擇是使用沒有root的docker,如:

docker pull fluxcapacitor/pipeline

您必須使用以下方法設置環境變量:

eval "$(docker-machine env default)"

更多關於它的信息

嘗試時,我的MAC上有相同的探測器

# eval "$(docker-machine env default)"

得到了這個錯誤

Error checking TLS connection: Error checking and/or regenerating the certs: There was an error validating certificates for host "192.168.99.100:2376": x509: certificate is valid for 192.168.99.101, not 192.168.99.100
You can attempt to regenerate them using 'docker-machine regenerate-certs [name]'.

重新生成證書,找出可用的碼頭機器;

# docker-machine ls

可出售的碼頭機器的輸出(省略其他)

NAME          ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
default       -        virtualbox   Running   tcp://192.168.99.100:2376           Unknown   Unable to query docker version: Get https://192.168.99.100:2376/v1.15/version: x509: certificate is valid for 192.168.99.101, not 192.168.99.100

為此默認docker-machine生成證書

# docker-machine regenerate-certs default

然后將docker-machine env設置為default docker-machine;

# eval "$(docker-machine env default)"

並且在那之后它正常工作。

我也嘗試了同樣但沒有奏效。

后來我在AWS CLI上嘗試了這些步驟

$ sudo nano /etc/docker/daemon.json
{
"dns": ["8.8.8.8", "8.8.4.4"]
}
$ sudo service docker restart
$ docker pull hello-world

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM