Debian Stretch に Docker を再インストール
Debian を Wheezy -> Jessie(testing) -> Stretch とアップグレードしているうちに Docker が動かなくなっていたのを直した。 あまり関係ないと思うが、kernel は Jessie の 3.16.0 を使っており、厳密には Stretch とは環境が異なる。
$ uname -a Linux t440s 3.16.0-4-amd64 #1 SMP Debian 3.16.51-2 (2017-12-03) x86_64 GNU/Linux
Docker のページに書いてある Debain の apt-line を入れても公開鍵の認証に失敗して amd64 のパッケージを取得できない。 仕方ないのでパッケージを直接インストールする。
https://docs.docker.com/engine/installation/linux/docker-ce/debian/
$ wget https://download.docker.com/linux/debian/dists/stretch/pool/stable/amd64/docker-ce_17.09.1~ce-0~debian_amd64.deb $ sudo dpkg -i docker-ce_17.09.1~ce-0~debian_amd64.deb
インストールプロセスの最後で systemd による dockerd の起動に失敗する。これはDocker 用の設定がないからなので作成する。 ここを参考にした。 https://forums.docker.com/t/failed-to-start-docker-application-container-engine/35594
$ sudo sh -c 'mkdir /etc/systemd/system/docker.service.d' $ sudo sh -c 'touch /etc/systemd/system/docker.service.d/hosts.conf' $ sudo cat /etc/systemd/system/docker.service.d/hosts.conf [Service] ExecStart= ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2736
systemctl status docker.service しても /var/lib/docker/ の permission がうんたらと怒られる。 よくわからないが、strace しても /var/lib/docker/ への何かで失敗している。
$ ls -al /var/lib/ | grep docker drwx--x--x 12 root root 136 12月 10 01:45 docker
/var/lib/docker/ には以前のバージョンで使用していたファイルが残っているので削除して作り直す。 ディレクトリ内に aufs のマウントポイントがあるので umount してから。
$ sudo umount /var/lib/docker/aufs $ sudo rm -rf /var/lib/docker $ sudo mkdir /var/lib/docker
ここで再度 Docker をインストールする。
$ sudo dpkg -i docker-ce_17.09.1~ce-0~debian_amd64.deb
今度は完了した。
$ docker run -p8080:80 -d nginx:latest Unable to find image 'nginx:latest' locally latest: Pulling from library/nginx bc95e04b23c0: Pull complete f3186e650f4e: Pull complete 9ac7d6621708: Pull complete Digest: sha256:b81f317384d7388708a498555c28a7cce778a8f291d90021208b3eba3fe74887 Status: Downloaded newer image for nginx:latest fb632e455394eeee49c15179fc0dd77daf0933ffb5dcf938ee2bcfde7d6eaa5d $ w3m http://localhost:8080
ずっと気になっていたのですっきりした。 Jupyter Notebook とか ROS2 とか Redash など、Docker 上でいろいろ試していきたい。