Ubuntu OS がインストールされているマシンに Docker をインストールしました。
以下を実行します。
sudo docker run hello-world
sudo
すべてはOKですが、コマンドを短くするためにコマンドを
非表示にしたいです。sudo
docker run hello-world
次のように表示されます。
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.35/containers/create: dial unix /var/run/docker.sock: connect: permission denied. See 'docker run --help'.
実行しようとすると、同じことが起こります:
docker-compose up
これを解決するにはどうすればよいですか?
ベストアンサー1
非ルートユーザーとして docker を実行する場合は、docker グループに追加する必要があります。
- docker グループが存在しない場合は作成します
$ sudo groupadd docker
- ユーザーを docker グループに追加します。
$ sudo usermod -aG docker $USER
- 新しい
docker
グループにログインします (ログアウト/再度ログインする必要がないようにするためですが、十分でない場合は再起動を試みてください)。
$ newgrp docker
- docker がルートなしで実行できるかどうかを確認する
$ docker run hello-world
それでもエラーが発生する場合は再起動してください
$ reboot
警告
dockerグループはrootユーザーと同等の権限を付与します。これがシステムのセキュリティにどのような影響を与えるかの詳細については、以下を参照してください。Docker デーモンの攻撃対象領域。。
docker の公式ドキュメントから引用:非ルートユーザーとして Docker を管理する