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

So installieren Sie Graphviz und beginnen mit dem Tutorial unter Windows

Herunterladen und installierenUmgebungsvariablen ...

So implementieren Sie eine verschachtelte if-Methode in Nginx

Nginx unterstützt weder verschachtelte if-Anweisu...

Methodenbeispiel zum sicheren Abrufen tiefer Objekte von Object in Js

Inhaltsverzeichnis Vorwort Text Parameter Beispie...

Mysql teilt Zeichenfolge durch gespeicherte Prozedur in Array auf

Um einen String in ein Array aufzuteilen, müssen ...

Anmeldung zur Token-Verifizierung im Vue-Projekt (Front-End-Teil)

In diesem Artikelbeispiel wird der spezifische Co...

Eine vollständige Anleitung zum Löschen von Floats in CSS (Zusammenfassung)

1. Übergeordnetes Div definiert Pseudoklassen: af...

JS implementiert ein zufälliges Namensaufrufsystem

Verwenden Sie JS, um ein zufälliges Namensaufrufs...

HTML-Maus-CSS-Steuerung

Im Allgemeinen wird die Maus als nach oben gericht...