chanshige blog

いろんなこと

Dockerでsystemctlすると怒られた

コンテナ内でサービスを起動しようとするとこうなった。

# systemctl start httpd.service
Failed to get D-Bus connection: Operation not permitted

であれば、 --privileged という特権を与えて /sbin/init でrunすればOKだった。

% docker run --privileged -d -p 8080:80 --name sv01 centos /sbin/init
% docker exec -it sv01 /bin/bash

ただ、--privileged はやばそうなオプションだし、もっと違う方法がありそう。

Dockerのイメージとしては、httpd単体で使うこと(1コンテナ=1プロセス)がそれっぽいし、上だとリソース食い散らかしそうだけど、さっと立ち上げて使って捨ててレベルなら便利だなと思いました!