ログ日記

作業ログと日記とメモ

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コンテナを立ち上げられるようになる。