debian9 の systemd-nspawnでdockerを動かす準備
デフォルトの設定では動かなかったので調べる。
https://wiki.archlinux.org/index.php/systemd-nspawn#Run_docker_in_systemd-nspawn
権限の設定が必要な模様。
それでもエラーが出たので、systemd-nspawnコマンドで起動してみる。
SystemCallFilterは --system-call-filter のオプションなんだろうなと思って検索しつつ。
https://man.kusakata.com/man/systemd-nspawn.1.html
オプションはある模様。
だけどdebian stretchでは認識されてない。
https://github.com/systemd/systemd/issues/5163
比較的最近の機能のようで、stretch-backports を探してみる。
https://packages.debian.org/stretch-backports/systemd-container
あった。このバージョンに上げたら使えるんだろうか。
apt-get -t stretch-backports で入れたり、戻したりした。
ダウングレードは
apt-get install systemd-container=232-25+deb9u4 \ libnss-mymachines=232-25+deb9u4 \ systemd=232-25+deb9u4 libsystemd0=232-25+deb9u4
のようにstretch-backportsでバージョンアップされた依存関係のあるものを個別にバージョン指定する必要がある?
docker run hello-world が動いたので
https://docs.ansible.com/ansible/latest/modules/apt_module.html
ansible の aptでdefault_releaseを指定してインストール。
これで docker in systemd-nspawn 完了。
あとはdocker-machineなりsshなりして systemd-nspawnのコンテナの中からdockerコンテナを立ち上げられるようになる。