Pi Zero 2 W で Docker を稼働させてみています。やはり重たくてキツイですが、ちょっと軽く Docker コンテナーを動かしてみたい時に便利です。もちろん、リモートから利用。
dockerd はすでにインストール済みだとします。
最初に Pi Zero 2 W で daemon.json の用意。
$ cat /etc/docker/daemon.json { "hosts": [ "fd://", "tcp://0.0.0.0:2375" ] }
次に /etc/systemd/system/multi-user.target.wants/docker.service の修正。
`-H` にホストの指定は daemon.json にもあるとエラーになるので、こちらのものを削除してあります。
$ cat /etc/systemd/system/multi-user.target.wants/docker.service | grep Exec | grep cont ExecStart=/usr/bin/dockerd --containerd=/run/containerd/containerd.sock $ sudo systemctl reload-daemon $ sudo systemctl restart docker $ sudo systemctl status docker
ExecStart で `-H fd:// -H tcp://0.0.0.0:2375` と指定するなら、/etc/docker/daemon.json は用意しなくても良い。
ちなみに、`systemctl edit` を使ったが、うまくファイルが保存されなかったので、ここで紹介している方法にしました。後で調べたいところ。
以上で準備完了。
次は Pi Zero 2 W を利用するマシンからの操作方法についてです。
DOCKER_HOST には名前解決ができるホスト名の指定が必要です。
mDNS 用のものは VS Code では解決できないようなので IP アドレスで指定することにしました。
/etc/hosts へ登録するなり DNS へ登録すれば、IP アドレスでなくても良いはずです。
IP アドレスの確認は下記。Pi Zero 2 W のホスト名が ubuntu-202207.local だとしています。
ubuntu-202207.local 側で hostname -I コマンドを実行して確認でも良い。
hostname コマンドを使うと Docker ネットワークの IP アドレスも表示されるので注意。
$ avahi-resolve -4 -n ubuntu-202207.local ubuntu-202207.local 192.168.1.100 $ ssh ubuntu@ubuntu-202207.local hostname -I 192.168.1.100 172.17.0.1 172.18.0.1
これで、DOCKER_HOST を指定して docker コマンドを実行。
DOCKER_HOST=tcp://192.168.1.100:2375 docker ps -a
VS Code の起動もいける。ただ、重すぎるので、コンテナー接続はきつかった。
DOCKER_HOST=tcp://192.168.1.100:2375 code .