web-dev-qa-db-ja.com

docker:unix:///var/run/docker.sockでDockerデーモンに接続できません

最近Fedoraワークステーション32を使い始めましたが、Dockerをインストールする必要があり、snapを使用することにしました。インストールは、インストール後の手順とともにうまくいきました。しかし、Dockerスナップを実行しようとすると、次のプロンプトが表示されます。

$ 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スナップサービスを調べると、

Service         Startup  Current   Notes
docker.dockerd  enabled  inactive  -

docker runコマンドを実行しようとすると、アクティブなサービスが非アクティブな状態に戻ります。この問題の修正にご協力いただければ幸いです。ありがとうございました :)

1
L3G0B0Y

Fedora 31および32はデフォルトでcgroup v2を使用しますが、Dockerは(まだ)これをサポートしていません。

2つのオプションがあります。1つはDockerの代わりにPodmanを使用すること(オプションで、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をインストールできます。

1
Stephen Kitt