💭

snapでdockerのインストール

2022/05/01に公開

前回の記事で立てたmultipassのubuntuを使っています。
https://zenn.dev/tetsu_koba/articles/b2489355a7dec0

ubuntu@u01:~$ cat /etc/issue
Ubuntu 20.04.4 LTS \n \l

ubuntu@u01:~$ cat /proc/version
Linux version 5.4.0-109-generic (buildd@ubuntu) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)) #123-Ubuntu SMP Fri Apr 8 09:10:54 UTC 2022

docker のインストール

ubuntu@u01:~$ docker

Command 'docker' not found, but can be installed with:

sudo snap install docker     # version 20.10.12, or
sudo apt  install docker.io  # version 20.10.12-0ubuntu2~20.04.1

See 'snap info docker' for additional versions.

今まではaptでやっていたが、今回はsnapでインストールしてみた。
snapとaptの比較はこちら。
https://phoenixnap.com/kb/snap-vs-apt

ubuntu@u01:~$ sudo snap install docker

思ったよりダウンロードに時間がかかった。5-6分。snapだとそのアプリの依存するライブラリ全てを含んだものになるのでサイズが大きい。

ubuntu@u01:~$ docker ps
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.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied

これがエラーになるのは想定済み。
sudoせずにdockerを使うには自分のユーザーにdockerの権限を付与する必要がある。

ubuntu@u01:~$ sudo adduser $USER docker
adduser: The group `docker' does not exist.

おや? docker1 のグループが無い。

ubuntu@u01:~$ ps ax |grep [d]ockerd
  15549 ?        Ssl    0:01 dockerd --group docker --exec-root=/run/snap.docker --data-root=/var/snap/docker/common/var-lib-docker --pidfile=/run/snap.docker/docker.pid --config-file=/var/snap/docker/1767/config/daemon.json

でもdockerd は --group docker で起動されている。

dockerのグループを作成して、自分をそこに入れる。

ubuntu@u01:~$ sudo addgroup --system docker
Adding group `docker' (GID 119) ...
Done.
ubuntu@u01:~$ sudo adduser $USER docker
Adding user `ubuntu' to group `docker' ...
Adding user ubuntu to group docker
Done.

これでシステムを再起動させる。
(ここで sudo reboot をしたらmultipassがおかしくなった  ... Macを再起動すれば復活する)

ubuntu@u01:~$ docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

エラーにならなくなった。

ubuntu@u01:~$ docker run -it ubuntu
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
125a6e411906: Pull complete 
Digest: sha256:26c68657ccce2cb0a31b330cb0be2b5e108d467f641c62e13ab40cbec258c68d
Status: Downloaded newer image for ubuntu:latest
root@18bd95bcccb7:/# ls
bin  boot  dev  etc  home  lib  lib32  lib64  libx32  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@18bd95bcccb7:/# 

OK

Discussion