ubuntu版Dockerを毎回sudoなしで実行したい


はじめに

ubuntu内にDockerをインストールしたけどコマンドを実行する前にsudoをつけないといけないのが面倒なのでどうにかしたい。

こちらを参考にしました。
dockerコマンドをsudoの付与無しに実行できるようにする

やること

$ getent group docker
docker:x:999:

ubuntuにはユーザグループという概念があり、そのグループに入っているユーザに指定した権限を付与するということを行うことができます。
getent group dockerで現在のDockerグループに入っているユーザを確認。誰もいません。

$ sudo gpasswd -a katoyu docker
Adding user katoyu to group docker

gpasswd を用いてDockerグループにPCのユーザ(僕はkatoyuなのでkatoyuと打ちます)を追加します。

確認してみる

katoyu@katoyu-System-Product-Name:~$ id katoyu
uid=1000(katoyu) gid=999(docker) groups=999(docker),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare)

999(docker)とあるのでDockerグループに入れているということになります。

$ getent group docker
docker:x:999:katoyu

getentでもユーザが追加されているのがわかります。

僕がつまづいたところ

dockerコマンドを入力してみます。

$ docker images
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/images/json: dial unix /var/run/docker.sock: connect: permission denied

アクセス権限ないって言われてる。ターミナルを再起動してもダメ。

解決法

PCを再起動しましょう。参考した記事にある「ログアウトしてログイン」はTerminalの話だと思っていました。アホです。

再起動(or ユーザからログアウトして再ログイン)してdockerコマンドを実行しました。

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              bf756fb1ae65        3 months ago        13.3kB

とてもめでたいですね。