MENU

Dockerインストール後のpermission deniedエラーの解決方法

DockerをUbuntuにインストールした後、docker buildなどのコマンドを実行すると、以下のようなエラーメッセージが表示されることがあります。

permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: <br>Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/build?buildargs=%7B%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=%7B%7D&memory=0&memswap=0&networkmode=default&rm=1&shmsize=0&t=apptest&target=&ulimits=null&version=1": dial unix /var/run/docker.sock: connect: permission denied

このエラーは、Dockerデーモンにアクセスするための権限が不足しているために発生します。

目次

原因

Dockerは、デフォルトで/var/run/docker.sockというUnixソケットを介してデーモンと通信します。このソケットにアクセスするには、適切な権限が必要です。通常、dockerグループにユーザーが所属していない場合にこのエラーが発生します。

解決方法

Dockerグループにユーザーを追加する

最も推奨される方法は、dockerグループに現在のユーザーを追加することです。これにより、管理者権限なしでDockerコマンドを実行できるようになります。

  1. ユーザーをdockerグループに追加: 以下のコマンドを実行して、現在のユーザーをdockerグループに追加します。
   sudo usermod -aG docker $USER
  1. 変更を反映させる: ユーザーをdockerグループに追加した後、シェルセッションを再起動するか、以下のコマンドを実行して変更を反映させます。
   newgrp docker
  1. 動作確認: 変更が適用されたかを確認するために、再度docker buildなどのコマンドを実行してみてください。
   docker build -t タグ名 .

正しく動作すれば、permission deniedエラーが解消されているはずです。

sudoを使ってコマンドを実行する(オプション)

もしdockerグループにユーザーを追加したくない場合、sudoを使ってDockerコマンドを実行することも可能です。ただし、毎回sudoを使用する必要があるため、効率が低下する可能性があります。

sudo docker build -t タグ名 .
目次