Docker内でsystemdを使おうとすると、以下のエラーに遭遇して動作しません。
Failed to get D-Bus connection: No connection to service manager.
にっちもさっちもいかなくなるので、こちらを参考に。
Dockerでsystemctlでserviceが起動できない - SHOYAN BLOG
「--privileged」を付けて、かつ起動コマンド「/sbin/init」でDockerコンテナを起動すればよいみたいです。
参考にしたエントリでは「-d」としていますが、自分の場合は使い捨てのコンテナ利用が多いので、
次のようにしました。
$ docker run -it --rm --privileged ubuntu:latest /sbin/init
使用したコンテナは、「ubuntu:latest」です。
あとは、この状態のコンテナにexecで入ります。
$ docker exec -it [コンテナ名] bash
とりあえず、これでsystemdが使えるようになりますよ、と。
$ sudo systemctl start xyz.service $ sudo systemctl stop xyz.service