UbuntuへのDockerのインストール とても簡単です!初心者でも、誰でも15分以内にインストールできます。 Dockerをインストールした後、通常のユーザーとしてほとんどのDocker操作を実行できないことに気付きました。 Dockerを「root」ユーザーとして実行するか、「sudo」権限で毎回実行する必要がありました。 root以外のユーザーとして、またはsudo権限なしで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.40/version: dial unix /var/run/docker.sock: connect: permission denied
たとえば、次のコマンドを使用して、通常のユーザーとしてDockerのバージョンを確認したいと思います。
$ docker version
そして、次のエラーメッセージが表示されます:
Client: Docker Engine - Community Version: 19.03.8 API version: 1.40 Go version: go1.12.17 Git commit: afacb8b7f0 Built: Wed Mar 11 01:25:46 2020 OS/Arch: linux/amd64 Experimental: false 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.40/version: dial unix /var/run/docker.sock: connect: permission denied
しかし、sudo権限で同じコマンドを実行すると;
$ sudo docker version
以下の出力に示すように、現在インストールされているDockerバージョンの詳細全体が表示されます。
Client: Docker Engine - Community Version: 19.03.8 API version: 1.40 Go version: go1.12.17 Git commit: afacb8b7f0 Built: Wed Mar 11 01:25:46 2020 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03.8 API version: 1.40 (minimum version 1.12) Go version: go1.12.17 Git commit: afacb8b7f0 Built: Wed Mar 11 01:24:19 2020 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.2.13 GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429 runc: Version: 1.0.0-rc10 GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init: Version: 0.18.0 GitCommit: fec3683
Dockerのドキュメントページを検索したところ、DockerデーモンがデフォルトでTCPポートではなくUnixソケットにバインドされていることに気付きました。そのUnixソケットはルートによって所有されているので ユーザーの場合、Dockerデーモンはrootユーザーとしてのみ実行されます。したがって、通常のユーザーはほとんどのDockerコマンドを実行できません。
Linuxでroot以外のユーザーとしてDockerを実行する場合は、次の手順を実行する必要があります。私はこれをUbuntu18.04サーバーでテストしましたが、問題なく動作しました。他のLinuxディストリビューションでも機能するはずです。
Linuxでroot以外のユーザーとしてDockerを実行する
Docker権限拒否エラーを修正し、Dockerをroot以外のユーザーとして使用するには、 "docker"というグループを作成します。 次のコマンドを使用します:
$ sudo groupadd docker
次に、ユーザーを dockerに追加します グループ:
$ sudo usermod -aG docker $USER
ユーザーをDockerグループに追加したら、ログアウトしてから再度ログインして、変更を有効にします。
または、次のコマンドを実行して、変更をグループに適用します。
$ newgrp docker
今後、通常の(root以外の)ユーザーはsudo権限なしでDockerを使用できるようになります。
通常のユーザーとして次のコマンドを実行します。
$ docker version
$ docker run hello-world
出力例:
見る?これで、sudo権限なしで両方のDockerコマンドを実行できます。
念のため、ユーザーをDockerグループに追加する前に、「sudo」権限でいくつかのDockerコマンドを実行した場合は、次のようなエラーが表示される可能性があります。
WARNING: Error loading config file: /home/user/.docker/config.json - stat /home/user/.docker/config.json: permission denied
上記のエラーメッセージは、〜/ .docker /を示しています 'sudo'コマンドが原因で、ディレクトリが誤った権限で作成されました。この問題を修正するには、次のコマンドを使用してこのディレクトリの所有権と権限を変更します。
$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
$ sudo chmod g+rwx "$HOME/.docker" -R
これを有効にするには、ログアウトしてから再度ログインします。
それでも問題が解決しない場合は、〜/ .docker /を削除する必要があります。 ディレクトリ。自動的に再作成されますが、カスタム設定がある場合はすべて失われます。
これがお役に立てば幸いです。