docker:无法连接到位于 unix:///var/run/docker.sock 的 Docker 守护进程

docker:无法连接到位于 unix:///var/run/docker.sock 的 Docker 守护进程

我最近开始使用 Fedora 工作站 32,我需要在其中安装 docker,并且我选择使用 snap。安装过程和安装后步骤都很顺利。但是当我尝试运行时,docker snap 给出以下提示,

$ docker run hello-world

WARNING: cgroup v2 is not fully supported yet, proceeding with partial confinement
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.

所以我继续奔跑

$ sudo snap start docker
Started.

$ sudo snap services docker
Service         Startup  Current  Notes
docker.dockerd  enabled  active   -

然后,当我运行时,docker run hello-world我得到相同的提示,说无法连接到 docker 守护进程。当我检查 docker snap 服务时,我得到,

Service         Startup  Current   Notes
docker.dockerd  enabled  inactive  -

当我尝试运行docker run命令时,活动服务切换回非活动状态。感谢任何解决此问题的帮助。谢谢 :)

答案1

Fedora 31 和 32 默认使用 cgroup v2,而 Docker 尚不支持。

您有两种选择:一种是使用 Podman 而不是 Docker(可选地,使用软件包podman-docker以模拟 Docker CLI),或者切换回 cgroup v1。

要执行后者,请将systemd.unified_cgroup_hierarchy内核参数设置为 0:

sudo dnf install grubby
sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0"

这将允许 Docker 运行(重新启动后)。

顺便说一句,在 Fedora 上,您可以使用该软件包安装 Docker moby-engine,而不是使用 Docker snap。

相关内容