systemctlするとFailed to get D-Bus connection: Operation not permittedがでる
dockerコンテナ内でsystemctl status httpd
したところ以下のエラーが発生した
[root]# systemctl status httpd Failed to get D-Bus connection: Operation not permitted
そこでいくつかググッてみました。
DockerでCentOS7起動時にsystemctlが動かないとき
Failed to get D-Bus connection: Operation not permitted
どの記事にも共通するのはdocker run
時に--privileged
をつける、最後の引数に/sbin/init
をつける、ということ。
そこで、コンテナ起動時にオプションをつけますが、なんどやっても解決せず。。
sudo docker run -d --privileged -u $UID --rm --name t1 --hostname t1 centos-test:t1 /sbin/init
試行錯誤してみた結果、原因は-u $UID
とユーザ指定して起動していたためでした。
コンテナ起動時は指定したuserでloginし、su -
でrootにloginし直して、systemctl
していましたが、これがよくなかったようです。
-u $UID
を外して、コンテナに最初からrootでloginしsystemctl
したところエラーはなくなりました。
sudo docker run -d --privileged --rm --name t1 --hostname t1 centos-test:t1 /sbin/init