root以外のユーザーが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.26/images/json: dial unix/var/run/docker.sock: connect: permission denied“
理由(dockerマニュアルより):
Manage Docker as a non-root user
The docker daemon binds to a Unix socket instead of a TCP port. By default that Unix socket is owned by the user root and other users can only access it using sudo. The docker daemon always runs as the root user.
If you don’t want to use sudo when you use the docker command, create a Unix group called docker and add users to it. When the docker daemon starts, it makes the ownership of the Unix socket read/writable by the docker group.
答えは明らかです.rootユーザーを使わないには、dockerというユーザーグループを作成し、dockerを使用する必要がある非rootユーザーをグループに追加し、まだできない場合は、下を見続けます.
方法1:sudoを使用して管理者権限を取得し、dockerコマンドを実行する方法は、スクリプトでdockerコマンドを実行する際に多くの限界があります.
方法2:dockerデーモンが起動すると、デフォルトではdockerという名前のユーザグループにUnix socketを読み書きする権限が与えられます.したがって、dockerユーザグループを作成し、現在のユーザをdockerユーザグループに追加すれば、現在のユーザはUnix socketにアクセスする権限があり、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.26/images/json: dial unix/var/run/docker.sock: connect: permission denied“
理由(dockerマニュアルより):
Manage Docker as a non-root user
The docker daemon binds to a Unix socket instead of a TCP port. By default that Unix socket is owned by the user root and other users can only access it using sudo. The docker daemon always runs as the root user.
If you don’t want to use sudo when you use the docker command, create a Unix group called docker and add users to it. When the docker daemon starts, it makes the ownership of the Unix socket read/writable by the docker group.
答えは明らかです.rootユーザーを使わないには、dockerというユーザーグループを作成し、dockerを使用する必要がある非rootユーザーをグループに追加し、まだできない場合は、下を見続けます.
方法1:sudoを使用して管理者権限を取得し、dockerコマンドを実行する方法は、スクリプトでdockerコマンドを実行する際に多くの限界があります.
方法2:dockerデーモンが起動すると、デフォルトではdockerという名前のユーザグループにUnix socketを読み書きする権限が与えられます.したがって、dockerユーザグループを作成し、現在のユーザをdockerユーザグループに追加すれば、現在のユーザはUnix socketにアクセスする権限があり、docker関連コマンドを実行することができます.
sudo groupadd docker # docker
sudo gpasswd -a $USER docker # docker
newgrp docker #