Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Failed to get D-Bus connection: Operation not permitted

I'm trying to install ambari 2.6 on a docker centos7 image but in the the ambari setup step and exactly while initializing the postgresql db I receive this error:

Failed to get D-Bus connection: Operation not permitted

I've got this error every time I try to run a service on my docker image.

I tried every solution in the net but nothing worked yet.

Does any one have an idea how to resolve this ?

Thank you in advance

like image 697
fadhloun anis Avatar asked May 17 '18 14:05

fadhloun anis


3 Answers

Use this command

docker run -d -it --privileged {Image ID} /usr/sbin/init

And access root in container

systemctl start httpd.service

This should work!

like image 115
Murat Çelebiler Avatar answered Sep 29 '22 08:09

Murat Çelebiler


To elaborate on @Guido's answer, what worked for me was copying systemctl.py from here and placing it in the same directory as my Dockerfile, and then adding the following to my Dockerfile:

COPY systemctl.py /usr/bin/systemctl
RUN chmod a+x /usr/bin/systemctl

E.g., this allowed me to start an sshd service like so:

service sshd start
like image 45
asherbret Avatar answered Sep 29 '22 08:09

asherbret


On Centos7 all the services are started and stopped throught the systemd daemon. The systemctl command will simply try to talk to the daemon by using a d-bus channel - and that's where the message comes from.

Instead of running a container in priviledged mode (so it is not really contained) you could also try out the docker-systemctl-replacement to avoid the situation.

like image 38
Guido U. Draheim Avatar answered Sep 29 '22 09:09

Guido U. Draheim