非スーパーユーザでも Docker コマンドを実行する方法
はじめに
はじめまして。私は大学院生です。
この記事では、非スーパーユーザでも Docker コマンドを実行する方法について紹介します。
この記事が、「Docker を使って、開発する手助けになった」と思ってもらえるように書かせていただきます。
現在の置かれている状況
現在、私がスーパーユーザで、後輩が一般ユーザです。弊研究室の方針に従い、この状況を変えることなく、Docker コマンドを使えるようにしたいです。
手順
docker
グループにユーザを追加する
Docker には docker
グループがあり、このグループにユーザーを追加することで、そのユーザが sudo
なしで Docker コマンドを実行できるようになります。
以下の qiita
を追加したい人のユーザに変更することで、docker
グループにユーザを追加することができます。
sudo usermod -aG docker qiita
usermod
コマンドの -aG
オプションは、-a
と -G
の二つから構成されています。
-a
:既存のグループに対して新しいグループを追加します。これを付けないと、ユーザが指定したグループ以外の他のグループから削除されてしまいます。つまり、ユーザを新たなグループに追加する際に必ず必要となるオプションです。
-G
:指定されたグループのリストにユーザを追加します。このオプションは、グループ名(または複数のグループ名)を指定します。
ユーザセッションの再起動
ユーザを docker
グループに追加した後、セッションを再起動するか、ログアウトして再ログインすることで変更が有効になります。
あるいは、newgrp docker
コマンドを実行することで、変更を反映できます。
追加した一般ユーザのできること
Docker コマンドの実行
docker
グループにユーザーを追加すると、sudo
なしで Docker コンテナの起動や停止、イメージのビルドなど、一般的な Docker コマンドは実行できるようになります。例えば、docker run
や docker ps
などの基本的な Docker 操作が実行できます。
ネットワーク設定
Docker の独自ネットワークを作成したり管理する操作は、docker
グループに追加されていれば sudo
なしで実行可能です。ただし、システム全体のネットワーク設定(Docker 外の設定)は依然として sudo
権限が必要です。
おわりに
この記事では、docker
グループにユーザを追加することで、非スーパーユーザでも Docker コマンドを実行できるようになりました。
この記事が、「Docker を使って、開発する手助けになった」と思ってもらえたら幸いです。