参考
- @yunano さんの CentOS 7のDockerコンテナ内でsystemdを使ってサービスを起動する - Qiita が詳しい
- docker - nsenterでコンテナに接続するのに便利なコマンド - Qiita
Failed to get D-Bus connection: No connection to service manager.
bash-4.2# systemctl
Failed to get D-Bus connection: No connection to service manager.
対処方法
- 特権モードにする(--privileged)
- コンテナで起動されるコマンドは/sbin/initにする
sudo docker run --privileged -d -p 80:80 --name httpd1 tukiyo3/centos-ja:7.0 /sbin/init
nsenterを使用してコンテナに入る。
sudo nsenter -t $(sudo docker inspect --format '{{.State.Pid}}' httpd1) -m -u -i -n -p /bin/sh
- これでsystemctlが使える。