ろきメモ【ROKI MEMO】- ろきsanの備忘録 -

ろきさんの備忘録。プログラミング学習記録や開発記録、および学んだ知識等のアウトプットとシェアを目的に書いています。たまに普通のことも書きます。

【sudoなしでDocker実行】Dockerコマンドをsudoなしで実行するための設定(Ubuntu)

スポンサーリンク

前回、UbuntuにDockerをインストールして、基本的なコマンドで動作確認してきた。
blog.rokisan.com

が、今まで、Dockerの実行には、毎回「sudo」を付けてきた。
これがデフォルトの使い方だが、流石にいちいち「sudo」をつけるのは面倒だ。
今日は、この「sudo」を付けずに実行できるよう設定した備忘録を残す。

そのためにやることは、「docker」というグループを(なければ)作り、そのグループに自身のユーザーを所属させる。そうすれば、「sudo」なしでdocekrが実行できる。
つまりやることを目次とすると、

となる。

スポンサーリンク



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