无法连接到 docker 提供商。请启动或安装 docker 提供程序

ens*_*zao 0 linux ubuntu sudo docker ddev

我正在使用 ddev 在 Linux(Ubuntu 20.04) 上安装Drupal。ddev需要安装 docker,在 Ubuntu 中,我可以使用 sudo 与 docker 连接。如果我想检查正在运行的容器,我将使用该命令。

sudo docker ps
Run Code Online (Sandbox Code Playgroud)

但是当我运行此命令使用 ddev 配置本地环境时。我收到这个错误。该错误表明 ddev 无法与 docker 提供程序连接。

ddev config --docroot web --project-name my-site --project-type drupal10 --create-docroot
Run Code Online (Sandbox Code Playgroud)

给出了这个错误。

无法连接到 docker 提供商。请启动或安装 docker 提供程序。

这个问题的解决方案是我需要让docker在没有sudo的情况下运行。我浏览了这个问题并找到了不同的解决方案并尝试了它们,但它们都不起作用。这些是我尝试解决该问题的命令。

我尝试使用 sudo 运行 ddev 命令,但出现此错误。

sudo ddev config --docroot web --project-name my-site --project-type drupal10 --create-docroot
Run Code Online (Sandbox Code Playgroud)

WARN[0000] 未读取全局配置文件,因为以 root 权限运行 未填充自定义命令或主机添加,因为以 root 权限运行 ddev 未设计为以 root 权限运行,请以普通用户身份运行且无需 sudo

sudo groupadd docker

sudo usermod -aG docker $(whoami)

sudo service docker start
Run Code Online (Sandbox Code Playgroud)

但这并没有解决问题。我已按照此链接寻求解决方案,但这也不起作用。 Docker 无法连接到 docker 守护进程

我该如何解决这个问题?

rfa*_*fay 6

出现这种情况的正常原因是您尚未完成 docker 所需的安装后活动。如果sudo docker ps有效,但docker ps失败,那就是发生的事情。

正如DDEV 文档中所说,不要忘记linux 的安装后步骤。

通常您所要做的就是sudo usermod -aG docker $USER然后重新启动。

@grobu 在评论中给了你答案。

在某些情况下,您使用了错误的 docker 上下文。您可能想要docker context ls查看哪些上下文可用以及您设置为哪一个。用于docker context <contextname>切换到正确的位置。