No se pudo obtener la conexión D-Bus: operación no permitida

No se pudo obtener la conexión D-Bus: operación no permitida

Si bien puedo iniciar sesión en la ejecuciónenvasee incluso ingresa a la consola de Asterisk, a continuación, parece que no puedo ver el estado del Asteriskservicio:

ubuntu@ip-172-31-14-19:~$ 
ubuntu@ip-172-31-14-19:~$ sudo docker exec -it 115ac4e433ff bin/bash
bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory
bash: warning: setlocale: LC_COLLATE: cannot change locale (en_US.UTF-8): No such file or directory
bash: warning: setlocale: LC_MESSAGES: cannot change locale (en_US.UTF-8): No such file or directory
bash: warning: setlocale: LC_NUMERIC: cannot change locale (en_US.UTF-8): No such file or directory
bash: warning: setlocale: LC_TIME: cannot change locale (en_US.UTF-8): No such file or directory
[root@ip-172-31-14-19 /]# 
[root@ip-172-31-14-19 /]# whoami
root
[root@ip-172-31-14-19 /]# 
[root@ip-172-31-14-19 /]# service asterisk status
Redirecting to /bin/systemctl status  asterisk.service
Failed to get D-Bus connection: Operation not permitted
[root@ip-172-31-14-19 /]# 
[root@ip-172-31-14-19 /]# asterisk -rvvv
Asterisk certified/11.6-cert17, Copyright (C) 1999 - 2013 Digium, Inc. and others.
Created by Mark Spencer <[email protected]>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk certified/11.6-cert17 currently running on ip-172-31-14-19 (pid = 1)
ip-172-31-14-19*CLI> 
ip-172-31-14-19*CLI> 

Intenté ejecutar con exec, más allá de eso, esto podría ser unasuntode cómo se creó el contenedor?

De un estibadorenvaseen AWS.

Respuesta1

Esto sucede con todos los sistemas operativos que utilizan SystemD para controlar los servicios. El comando "systemctl" no hace mucho; simplemente usa d-bus para comunicarse con el demonio systemd. Pero dentro de un contenedor acoplable no existe tal cosa.

Puede evitar este error al anular systemctl con el https://github.com/gdraheim/docker-systemctl-replacementpara ejecutar las partes ExecStart/ExceStop de los servicios directamente en lugar de pedirle a systemd que lo haga.

información relacionada