D-Bus-Verbindung konnte nicht hergestellt werden: Vorgang nicht zulässig

D-Bus-Verbindung konnte nicht hergestellt werden: Vorgang nicht zulässig

Ich kann mich zwar in den laufendenContainerund selbst wenn ich die Asterisk-Konsole unten aufgebe, kann ich den Status des AsteriskDienstes scheinbar nicht sehen:

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> 

Habe versucht, mit zu laufen exec, darüber hinaus könnte dies einGegenstandwie der Container erstellt wurde?

Von einem DockerContainerauf AWS.

Antwort1

Dies geschieht bei jedem Betriebssystem, das SystemD zur Steuerung von Diensten verwendet. Der Befehl „systemctl“ bewirkt nicht viel – er verwendet lediglich d-bus, um mit dem systemd-Daemon zu kommunizieren. In einem Docker-Container gibt es so etwas jedoch nicht.

Sie können diesen Fehler vermeiden, indem Sie systemctl mit dem https://github.com/gdraheim/docker-systemctl-replacementum die ExecStart-/ExceStop-Teile der Dienste direkt auszuführen, anstatt systemd dazu aufzufordern.

verwandte Informationen