dockerの実行グループを変更する
はじめに
dockerコマンドを実行する際に実行ユーザーがdockerグループに所属していない場合sudoをつけて実行する必要があります.
ユーザーをdockerグループに所属させれば済む話ではありますが既にある程度の数のユーザーとそのユーザーが所属するグループがある場合いちいちdockerグループにユーザーを追加させるのは面倒です.
今回はdockerの実行グループを変更して解決します.
今回はserviceファイルに追記しますがdaemon.jsonに書いた方が良い気がします…
共通でやっておくこと
まず目的のグループのIDをidコマンドかgetent辺りを使って確認します.
1$ getent group hoge
2hoge:*:9999:foo,bar
serviceファイルに追記する場合
次にdocker.serviceを編集します.
Gオプションでデフォルトグループから変更出来るので変更します.
グループ名でも指定できますが当該グループがLDAPで管理されたグループの場合参照エラーが発生してサービスが起動しなかったためグループIDで指定しています.
1$ sudo vi /usr/lib/systemd/system/docker.service
2- ExecStart=/usr/bin/dockerd
3+ ExecStart=/usr/bin/dockerd -G 9999
サービスを再起動します
1$ sudo service docker restart
これでグループhogeに所属しているユーザーはコマンドを実行できるようになったはずです.
daemon.jsonを利用する場合
/etc/docker/daemon.jsonがない場合は作成
何かしら書いている場合は整合性を保って以下を追記
1{
2 "group": "9999"
3}
あとはdockerサービスを上げ直して終了
1$ sudo service docker restart
参考記事
以下の記事が参考になりました.