はじめに
CentOS7 で docker コマンドを sudo なし(rootユーザ以外でも)実行するための方法です。
内容的には二番煎じ感があるのですが、過去、自分は
- CentOS7 で docker をインストールされた際に作成される
dockerroot
グループに、docker 操作ユーザを入れる - docker 起動時に
chgrp dockerroot /var/run/docker.sock
をするような仕掛けを作る
というやり方でこれを実現していたのですが(実際にこのやり方を紹介している記事もありました)、もっと適切なやり方があったのでまとめておきます。
手順
docker は CentOS7 の rpm パッケージでインストールされている状態とします。
1. docker group を新規作成する
$ sudo groupadd docker
- CentOS7 で docker をインストールしても docker group は作成されないので新規作成します
2. docker を再起動する
$ sudo systemctl restart docker
- docker 起動時に docker group が存在している場合、
/var/run/docker.sock
の group がdocker
になります
$ ls -la /var/run/docker.sock srw-rw---- 1 root root 0 Mar 21 21:05 /var/run/docker.sock $ sudo groupadd docker $ sudo systemctl restart docker $ ls -la /var/run/docker.sock srw-rw---- 1 root docker 0 Mar 21 21:06 /var/run/docker.sock
もし、なんらかの理由で docker を再起動できない場合には、/var/run/docker.sock
の group を直接変更しましょう。
$ sudo chgrp docker /var/run/docker.sock
3. sudo なしで docker コマンドを実行させたいユーザを、docker group に所属させる
$ sudo gpasswd -a $USER docker
- これで
$USER
が次回ログイン時には docker group に所属となり、sudo なしで docker コマンドが利用できるようになります
これでおしまいです。