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

Detaillierte Einführung in TABLE-Tags (TAGS)

Grundlegende Syntax der Tabelle <table>...&l...

JavaScript-Implementierung eines Karussellbeispiels

In diesem Artikel wird der spezifische Code für J...

Centos7-Installation und Konfiguration von Mysql5.7

Schritt 1: Holen Sie sich die MySQL YUM-Quelle Ge...

Element-Beispielcode zum Implementieren dynamischer Tabellen

Inhaltsverzeichnis 【Code-Hintergrund】 【Code-Imple...

MySQL-Join-Abfragesyntax und Beispiele

Verbindungsabfrage: Es ist das Ergebnis der paarw...

Reines CSS, um coole Neonlichteffekte zu erzielen (mit Demo)

Ich habe kürzlich die Tutorial-Reihe zu CSS-Anima...

Detaillierte Erklärung zur Verwendung des CSS-Zeigerereignisse-Attributs

Bei der Frontend-Entwicklung stehen wir in direkt...

vue cli3 implementiert die Schritte der Verpackung nach Umgebung

Das mit CLI3 erstellte Vue-Projekt wird als Nullk...

So verwenden Sie den Fuser-Befehl im Linux-System

Was ist Fuser Command? Der Befehl fuser ist ein s...

Zusammenfassung der Überwachung von Tastaturereignissen durch Vue

Wichtige Modifikatoren Wenn wir auf Tastaturereig...

Analyse des MySQL-Client-Installationsprozesses auf dem Mac

Versuchen Sie die Installation über Pip in einer ...

Linux Cron geplante Ausführung von PHP-Code mit Parametern

1. Verwenden Sie zur Ausführung weiterhin ein PHP...