LinuxにDocker Engineをインストールした際、一般ユーザーではdockerコマンドがエラーになる

公式の手順どおり、LinuxにDocker Engineをインストールしましたが、
docker.sock へのアクセス権がなく、docker コマンドを実行する際に
エラーになってしまったため、その解決方法を記載しておきます。

はじめに

Linux(CentOS Stream 9)にDocker Engineをインストールする手順については、
公式の以下のサイトを参考にしました。
https://docs.docker.com/engine/install/centos/

以前のバージョンをアンインストール

$ sudo dnf remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

リポジトリを追加

$ sudo dnf -y install dnf-plugins-core
$ sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Docker Engineをインストール

$ sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

GPGキーは、フィンガープリントが 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35 と一致することを確認し、受け入れます。

Docker Engineを起動

$ sudo systemctl enable --now docker

発生したエラーの内容

$ docker --version
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.47/containers/json": dial unix /var/run/docker.sock: connect: permission denied

解決策1(一時的)

解決策として、以下のコマンドも紹介されていましたが、
こちらは一時的な効果しかなく、再起動後には毎回実行する必要があります。

$ sudo chmod 666 /var/run/docker.sock

解決策2(恒久的)

恒久的な解決策としては、一般ユーザーをdockerグループに追加します。

一般ユーザーでdockerコマンドを実行できるようにする

公式サイトにも、以下にて紹介されておりました。
https://docs.docker.com/engine/install/linux-postinstall/

dockerグループを作成

$ sudo groupadd docker

一般ユーザーをdockerグループに追加

dockerコマンドを実行したい一般ユーザーが、現在ログイン中のユーザーと異なる場合は、$USER のところをユーザー名に変更ください。

$ sudo usermod -aG docker $USER

上記設定を反映する

設定を反映するには、以下のコマンドを実行するか、ユーザーのログアウト/ログイン、または再起動が必要なようです。

$ newgrp docker

以上で、一般ユーザーでもdockerコマンドが実行できるようになります。