

dockerコマンドでPermission deniedが出た
この記事は、構成と文章の整理にAIを使っています。
あくまで読みやすくするための補助で、内容そのものをAIにすべて任せて書いているわけではありませんが、ところどころ相談しながら整えています。
何が起きたか
docker ps とか docker run を叩くと以下のエラーが出た。
Got permission denied while trying to connect to the Docker daemon socketDockerデーモンは /var/run/docker.sock というUnixソケット経由で操作されていて、このソケットは基本的に root とdockerグループにしか触れない。sudoなしで実行している一般ユーザーだと弾かれる。
対応
docker グループに自分を追加する。
sudo gpasswd -a $(whoami) dockerusermod -aG docker $(whoami) でも同じことができる。ただし usermod は -a(append)を付け忘れると既存の所属グループが上書きされるので注意。gpasswd -a の方が事故りにくい。
反映されない場合
コマンドを打っただけだとログインし直すまで反映されない。今のシェルにすぐ効かせたいなら以下のどちらか。
- ログアウト→再ログイン
newgrp docker(サブシェルとして反映)
groups コマンドで docker が出てこない間はまだ反映されていない。
気をつけること
docker グループに入れる = 実質rootを渡すのとほぼ同じ。Dockerデーモン自体がroot権限で動いているので、コンテナ経由でホストのファイルシステムにroot権限でアクセスすることができてしまう。sudoの許可を絞るのとは意味が違うので、この点は把握した上でグループに追加した方がいい。