GNU/Linux >> Linux の 問題 >  >> Panels >> Docker

UbuntuでDocker権限拒否エラーを修正する方法

最近、UbuntuにDockerをインストールしました。とても簡単でした。しかし、dockerコマンドを実行しようとすると、次のエラーが発生しました。

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

何か特別なことをしようとしているわけではありません。これは、psなどの基本的なDockerコマンドでも発生します。

奇妙ですね。この厄介なエラーを乗り越える方法をお見せしましょう。

修正'試行中に許可が拒否されましたUbuntuのDockerでDockerデーモンソケットのエラーに接続する

これに対処するには2つの方法があります。

修正1:すべてのdockerコマンドをsudoで実行します

システムにsudoアクセス権がある場合は、sudoを使用して各dockerコマンドを実行できます。この「Dockerデーモンソケットに接続しようとしているときにアクセス許可が拒否されました」は表示されなくなります。

sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS               NAMES
13dc0f4226dc        ubuntu              "bash"              17 hours ago        Exited (0) 16 hours ago                       container-2
2d9a8c190e6c        ubuntu              "/bin/bash"         17 hours ago        Created                                       container-1

しかし、sudoを使用してすべてのdockerコマンドを実行するのは非常に不便です。最初にsudoを追加し忘れると、「permissiondenied」エラーが再び発生します。

修正2:sudoなしでdockerコマンドを実行する

sudoを使用せずにdockerコマンドを実行するには、ユーザーアカウント(またはこの問題を修正しようとしているアカウント)をdockerグループに追加します。

まず、groupaddコマンドを使用してDockerグループを作成します。グループはすでに存在している可能性がありますが、グループ作成コマンドを実行しても問題はありません。

sudo groupadd docker

Dockerグループができたので、usermodコマンドを使用してユーザーをこのグループに追加します。自分のユーザーアカウントでそれを実行しようとしていると想定しています。その場合は、$USER変数を使用できます。

sudo usermod -aG docker $USER

グループのユーザーを一覧表示して、ユーザーがDockerグループに追加されていることを確認します。おそらくログアウトしてから再度ログインする必要があります

[email protected]:~$ groups
abhishek adm cdrom sudo dip plugdev lpadmin sambashare docker

ログアウトしてもグループが表示されず、Dockerグループが表示されない場合は、 Ubuntuを再起動する必要がある場合があります 。これを回避するには、newgrpコマンドを使用して次のようにします。

newgrp docker

これで、sudoを使用せずにdockerコマンドを実行しようとすると、正常に機能するはずです。

さらなるトラブルシューティング

場合によっては、過去にsudoを使用してdockerコマンドを実行したことがある場合は特に、一部のファイルに追加のアクセス許可を追加する必要があります。

/var/run/docker.sockファイルのグループ所有権を変更してみてください。

sudo chown root:docker /var/run/docker.sock

〜/.dockerディレクトリのグループ所有権を変更してみることもできます。

sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R

そして、sudoでdockerを実行してみてください。大丈夫なはずです。

この小さなチュートリアルが、厄介な「 unix:///var/run/docker.sockのDockerデーモンソケットに接続しようとしたときに許可が拒否されました:http://%2Fvar%2Frunを取得する」の修正に役立つことを願っています%2Fdocker.sock / v1.39 / containers / json:UNIX /var/run/docker.sockにダイヤル:接続:許可が拒否されました 」UbuntuのDockerでのエラー。

問題は解決しましたか?はいの場合、私はあなたからの感謝の簡単なコメントを歓迎します。そうでない場合は、この問題をさらに解決できるようサポートさせていただきます。


Docker
  1. DockerをDebian/Ubuntuにインストールする方法

  2. 修正方法– SudoがUbuntuでホストを解決できませんか?

  3. 「docker images」コマンド エラー – 「許可が拒否されました」

  1. Ubuntu16.04にDockerをインストールする方法

  2. Ubuntu20.04で壊れたパッケージを修正する方法

  3. Ubuntu 16.04で依存関係の問題を修正する方法は?

  1. Ubuntu18.04にDockerをインストールする方法

  2. Ubuntu20.04LTSにDockerをインストールする方法

  3. Ubuntu 22.04 に Docker をインストールする方法