Detaillierte Erläuterung der Lösung für den Fehler bei der Verwendung von systemctl zum Starten des Dienstes im Docker

Detaillierte Erläuterung der Lösung für den Fehler bei der Verwendung von systemctl zum Starten des Dienstes im Docker

Docker-Version:

[root@localhost gae_proxy]# Docker-Version
Kunde:
 Version: 1.10.3
 API-Version: 1.22
 Paketversion: docker-common-1.10.3-46.el7.centos.10.x86_64
 Go-Version: go1.6.3
 Git-Commit: d381c64-nicht unterstützt
 Gebaut: Do 4. Aug 13:21:17 2016
 Betriebssystem/Architektur: linux/amd64

Server:
 Version: 1.10.3
 API-Version: 1.22
 Paketversion: docker-common-1.10.3-46.el7.centos.10.x86_64
 Go-Version: go1.6.3
 Git-Commit: d381c64-nicht unterstützt
 Gebaut: Do 4. Aug 13:21:17 2016
 Betriebssystem/Architektur: linux/amd64

Bildversion

[root@b2ca5610d3da /]# cat /etc/redhat-release
CentOS Linux Version 7.2.1511 (Core) 

Beim Starten des Dienstes über systemctl im Docker wird immer eine Fehlermeldung wie „D-Bus-Verbindung konnte nicht hergestellt werden: Vorgang nicht zulässig“ gemeldet.

[root@25d27693a24d ~]# systemctl start sshd
D-Bus-Verbindung konnte nicht hergestellt werden: Vorgang nicht zulässig

Die Lösung besteht darin, /usr/sbin/init auszuführen, wenn Docker ausgeführt wird. Zum Beispiel:

[root@localhost /]# docker run -tid --name hadoopbase centos/hadoopbase:v001 /usr/sbin/init

Der auf diese Weise ausgeführte Container kann systemctl verwenden, um den Dienst zu starten. Einige Leute sagen, dass das Fehlerproblem beim Ausführen über systemctl in CentOS7.2 behoben wurde, aber ich stoße im tatsächlichen Betrieb immer noch auf ein solches Problem.

Eine andere Lösung besteht darin, beim Generieren der Image-Datei über Dockerfile den Befehl /usr/sbin/init über CMD auszuführen, d. h.: CMD ["/usr/sbin/init"];

Referenz: https://github.com/docker/docker/issues/7459
https://github.com/docker/docker/issues/2296

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Einrichten eines Docker-Proxys unter CentOS 7 (Konfiguration der Umgebungsvariablen des Systemd-Dienstes unter Linux)
  • Verwendung des Docker-Systembefehlssatzes

<<:  Detaillierte Erläuterung der MySQL-Methode zur Optimierung der Reihenfolge nach Anweisung

>>:  So führen Sie JavaScript in Jupyter Notebook aus

Artikel empfehlen

Installieren Sie JDK8 im RPM-Modus auf CentOS7

Nach der erfolgreichen Installation von CentOS 7 ...

So legen Sie die Umgebungsvariable PATH im Linux-System fest (3 Methoden)

1. In Windows-Systemen erfordern viele Softwarein...

Diskussion über Web-Nachahmung und Plagiat

Einige Monate nachdem ich 2005 in die Branche eing...

Beispielcode einer in Vue3 gekapselten Lupenkomponente

Inhaltsverzeichnis Komponenteninfrastruktur Zweck...

Vue muss Wissenspunkte lernen: die Verwendung von forEach()

Vorwort Bei der Frontend-Entwicklung stoßen wir h...

Semantische Webseiten XHTML semantische Auszeichnung

Ein weiterer wichtiger Aspekt bei der Trennung vo...

So implementieren Sie Polygonbrechung in Echtzeit mit Threejs

Inhaltsverzeichnis Vorwort Schritt 1: Aufbau und ...