当前位置: 首页 > 知识库问答 >
问题:

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

潘智刚
2023-03-14

我的Docker服务已启动并运行。但是,当尝试使用Docker时,请使用sudo,例如:

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机器启动默认值

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

docker ps

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-机器env默认的输出

$ 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"

共有3个答案

钱旻
2023-03-14

我在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机器;

# docker-machine ls

可用docker机器的输出(其他省略)

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计算机生成证书

# docker-machine regenerate-certs default

然后将docker machine env设置为defaultdocker machine;

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

之后它会正常工作。

田志
2023-03-14

您必须设置环境变量:

eval "$(docker-machine env default)"

更多关于它在这里。

吴弘壮
2023-03-14

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

eval "$(docker-machine env default)"

但是,如果使用sudo启动docker,docker可执行文件将无法访问导出的环境变量。您可以通过将-E标志传递给sudo,使其工作,例如:

sudo -E docker pull fluxcapacitor/pipeline

但更简单的选择是使用docker而不使用root-like:

docker pull fluxcapacitor/pipeline
 类似资料:
  • 我正在运行安装了以下docker软件的Ubuntu:

  • 问题内容: 我创建了一个Dockerfile在Docker内部运行Docker: 启动容器并运行docker ps后,我得到:“无法通过unix:///var/run/docker.sock连接到Docker守护程序。Docker守护程序正在运行吗?” 我在容器内执行了命令dockerd: 错误启动守护程序:错误初始化网络控制器:错误获取控制器实例:无法创建NAT链DOCKER:iptables失

  • 问题内容: 我在CentOS机器上运行Jenkins和Docker。我有一个詹金斯(Jenkins)工作,可以拉出Github存储库并构建Docker映像。当我尝试运行作业时,出现错误: 即使我通过将jenkins添加到我的docker用户组并重新启动计算机,也会发生这种情况。我该如何解决? 顺便说一句,如果尝试将命令更改为我只是得到错误 问题答案: 在安装了Jenkins和Docker之后。将j

  • 这是我的设置: -内部程序-慢响 我目前被迫使用Windows进行开发,因此我成为了microsoft insider成员,并以WSL2模式安装了ubuntu。Docker desktop支持WSL2的集成,所以我尝试了它。。。一个星期以来,它工作得完美无缺。今天电脑重启后,我无法让docker再次运行。Ubuntu可以从Docker桌面看到注入的二进制文件,但它不能再连接到windows托管的D

  • 问题内容: 我已经在ubuntu 14.04上安装了docker,它告诉我安装成功。然后我进入,它返回了 我进入了 我尝试了和,得到了相同的答复: 我不知道为什么它返回了这个,我尝试使用来拉ubuntu 并得到了 请告诉我如何解决此问题,如何拉出并运行docker image。和是一样的吗? 问题答案: 您需要将当前用户添加到组中,如下所示: 另外,您可以使用以下环境变量: 然后重新启动系统。正如

  • 我创建了一个Dockerfile来在Docker中运行Docker: 启动容器并运行docker ps后,我得到:“无法连接到unix:///var/run/docker.sock.docker守护程序是否正在运行?" 我在容器中执行了命令dockerd,结果是: 启动守护程序时出错:初始化网络控制器时出错:获取控制器实例时出错:未能创建NAT链DOCKER:iptables失败:iptables