【sudoなしでDocker実行】Dockerコマンドをsudoなしで実行するための設定(Ubuntu)
スポンサーリンク
前回、UbuntuにDockerをインストールして、基本的なコマンドで動作確認してきた。
ahrk-izo.hatenablog.com
が、今まで、Dockerの実行には、毎回「sudo」を付けてきた。
これがデフォルトの使い方だが、流石にいちいち「sudo」をつけるのは面倒だ。
今日は、この「sudo」を付けずに実行できるよう設定した備忘録を残す。
そのためにやることは、「docker」というグループを(なければ)作り、そのグループに自身のユーザーを所属させる。そうすれば、「sudo」なしでdocekrが実行できる。
つまりやることを目次とすると、
- 1. グループ確認
- 2. deckerグルール作成
- 3. グループを確認してみる
- 4. 自身のユーザをdockerグループに所属させる
- 5. 自身のユーザが、dockerグループに所属されたか確認
- 6. リロード、再起動で反映させる
- 7. 「sudo」なしでDocker実行できるか確認してみる
となる。
スポンサーリンク
1. グループ確認
$ groups (user) sudo
※(user)は自身のユーザー名
2. deckerグルール作成
dockerグループがなければ作る
$ sudo groupadd docker
すでのdockerグループがあれば、
「groupadd: グループ 'docker' は既に存在します」
というコメントが帰ってくる
3. グループを確認してみる
グループは、/etc/group に記述されているので、lessコマンドなので出力してみる。
$ less /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
...
docker:x:998:
→「docker」グループはある。
getentコマンドならピンポイントで確認できる
$getent group docker
docker:x:998:
4. 自身のユーザをdockerグループに所属させる
$ sudo gpasswd -a $USER docker
※$USERは自身のユーザー名
※「echo $USER」などで確認してみるとよい
5. 自身のユーザが、dockerグループに所属されたか確認
もう一度getentコマンドで確認
$getent group docker docker:x:998:(user)
→dockerグループに自身のユーザーが入った
6. リロード、再起動で反映させる
# daemonをリロード $ sudo systemctl daemon-reload # docker再起動 $ sudo systemctl restart docker
あとはターミナルを再起動すれば完了のはすだが、僕の場合は反映されず、PCの再起動でようやく反映された。
groupの設定のときは、PC再起動と覚えておこう。
スポンサーリンク
7. 「sudo」なしでDocker実行できるか確認してみる
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest bf756fb1ae65 7 months ago 13.3kB
うん。バッチリ。
参考:
qiita.com