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

Verwendung von „Select“, „Distinct“ und „Limit“ in MySQL

Inhaltsverzeichnis 1. Einleitung 2. auswählen 2.1...

Einführung in gängige Befehle und Tastenkombinationen in Linux

Inhaltsverzeichnis 1 Systemeinführung 2 Systemver...

MySQL-Transaktionskontrollfluss und ACID-Eigenschaften

Inhaltsverzeichnis 1. ACID-Eigenschaften Syntax d...

Die Bilder in HTML werden direkt durch base64-kodierte Strings ersetzt

Kürzlich stieß ich auf eine Webseite, die zwar Bil...

Vollständige Analyse der MySQL-Datentypen

Datentyp: Die grundlegenden Regeln, die definiere...

Vergessen Sie nicht, den HTML-Tag zu schließen

Das Erstellen von Webseiten, die Webstandards ents...

Eigenschaften und Quellcode der Echarts-Legendenkomponente

Die Legendenkomponente ist eine häufig verwendete...

Vue-Element el-transfer fügt Drag-Funktion hinzu

Das Core Asset Management Project erfordert, dass...

Anbieterpräfix: Warum brauchen wir ein Browser-Engine-Präfix?

Was ist das Lieferantenpräfix? Anbieterpräfix – B...

18 Sets exquisiter kostenloser Symbolmaterialien im Apple-Stil zum Teilen

Apple-Becher-Symbole und Extras HD StorageBox – Z...