1. ホーム
  2. Linux

Ubuntu 18.04で「Dockerデーモンソケットに接続しようとしたときにパーミッションが拒否されました」問題を解決する

2022-02-23 15:20:34

ディレクトリ

1 問題の説明

2 原因分析

3 解決策

4 アップデートが成功したかどうかの確認

5 参考文献


1 問題の説明

ターミナルで "docker version" コマンドを実行すると、以下のエラーが発生します。

<ブロッククオート

unix:///var/run/docker.sock にある Docker デーモンソケットに接続しようとしている間に、パーミッションが拒否されました。Get http://%2Fvar%2Frun% 2Fdocker.sock/v1.26/images/json: dial unix /var/run/docker.sock: connect: permission denied".Docker デーモンソケットに接続しようとしているときにパーミッションが拒否されました。

2 原因分析

docker mannualより。

非ルートユーザーでDockerを管理する

docker デーモンは、TCP ポートの代わりに Unix ソケットにバインドします。デフォルトでは、この Unix ソケットは root ユーザが所有し、他のユーザは docker デーモンが常に root ユーザとして実行されるようにすることで、ソケットにアクセスできます。

dockerコマンドを使用する際にsudoを使用したくない場合は、dockerというUnixグループを作成し、ユーザーを追加してください。docker デーモンが起動すると、Unix ソケットの所有権を docker グループで読み取り/書き込み可能にします。

 dockerプロセスは、TCPポートの代わりにUnixソケットを使用します。デフォルトでは、Unixソケットのオーナーはrootユーザーになっていますので ルート権限 にアクセスします。

3 解決方法

sudo groupadd docker #Add the docker user group
sudo gpasswd -a $XXX docker #Detect if the current user is already in the docker user group, where XXX is the username, e.g. mine, liangll
sudo gpasswd -a $USER docker #Add the current user to the docker usergroup
newgrp docker #Update the docker usergroup

<イグ

4 アップデートが成功したかどうか確認する

docker version"コマンドを再度実行し、"Got permission denied"のパーミッション・エラーが表示されなくなったことを確認します。

5 参考文献