💭
snapでdockerのインストール
前回の記事で立てたmultipassのubuntuを使っています。
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の比較はこちら。
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