Beheben Sie das Problem, dass einige Konfigurationsdateien in /etc nach dem Neustart des Docker-Containers zurückgesetzt werden

Beheben Sie das Problem, dass einige Konfigurationsdateien in /etc nach dem Neustart des Docker-Containers zurückgesetzt werden

1.

Die drei Dateien /etc/hosts, /etc/resolv.conf und /etc/hostname im Container sind im Image nicht vorhanden, sondern liegen in /var/lib/docker/containers/. Beim Starten des Containers werden diese Dateien in Form von mount in den Container eingehängt.

Wenn diese Dateien im Container geändert werden, sind die geänderten Teile daher nicht in der obersten Ebene des Containers vorhanden, sondern werden direkt in diese drei physischen Dateien geschrieben.

2. Warum verschwindet der geänderte Inhalt nach dem Neustart?

Der Grund ist: Jedes Mal, wenn Docker einen Container startet, erstellt es eine neue /etc/hosts-Datei. Warum ist das so?

Der Grund ist: Der Container wird neu gestartet, die IP-Adresse wird geändert und die ursprüngliche IP-Adresse in der Hosts-Datei ist ungültig. Daher sollte die Hosts-Datei geändert werden, da sonst fehlerhafte Daten generiert werden.

3. Gibt es eine gute Lösung?

Sie können den Parameter --add-host des Befehls „Docker Run“ verwenden, um eine Zuordnung zwischen Host und IP für den Container hinzuzufügen.

Ergänzung: Beheben Sie das Problem, dass die Neustartkonfiguration im Docker-Container (Quelle /etc/profile) nicht wirksam wird.

Problembeschreibung:

Wenn Sie Docker verwenden, müssen Sie möglicherweise einige Konfigurationsdateien in der Containerinstanz anpassen, z. B. /etc/profile. Nach der Änderung müssen Sie sie jedoch bei jedem Start des Containers manuell als Quelle verwenden, um sie wieder wirksam zu machen, was sehr umständlich ist.

Lösung:

Fügen Sie in der Containerinstanz die Quelle /etc/profile am Ende der Konfigurationsdatei ~/.bashrc hinzu, speichern Sie die Datei und beenden Sie das Programm. Dadurch kann die Konfigurationsdatei nach dem Neustart automatisch aktualisiert werden, ohne dass ein manueller Eingriff erforderlich ist.

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur.

Das könnte Sie auch interessieren:
  • So beheben Sie den Startfehler des Docker-Containers
  • Lösung für den Fehler beim Aufrufen des Containers aufgrund vollen Docker-Speicherplatzes
  • Docker: Zeigen Sie den Mount-Verzeichnisvorgang des Containers an
  • docker run -v mountet Datenvolumes abnormal und der Containerstatus wird immer neu gestartet

<<:  Beispielcode zur Implementierung eines bildadaptiven Containers mit CSS

>>:  Erstellung von Webseiten – Grundlegende Deklaration – Dokumenttypbeschreibung (DTD

Artikel empfehlen

So fügen Sie Vite-Unterstützung zu alten Vue-Projekten hinzu

1. Einleitung Ich habe vor zwei Jahren ein Projek...

JavaScript-Canvas zum Laden von Bildern

In diesem Artikel wird der spezifische Code von J...

js canvas realisiert Bilder mit abgerundeten Ecken

In diesem Artikel wird der spezifische Code von J...

Eine kurze Erläuterung, wann MySQL interne temporäre Tabellen verwendet

Gewerkschaftsexekution Verwenden Sie zur Vereinfa...

Tiefgreifendes Verständnis der logischen Architektur von MySQL

MySQL ist heute die Datenbank, die von den meiste...

Bootstrap+Jquery zum Erreichen eines Kalendereffekts

In diesem Artikel wird der spezifische Code von B...

Tutorial zum Importieren und Exportieren von Docker-Containern

Hintergrund Die Popularität von Docker hängt eng ...

So erstellen und implementieren Sie ein Node-Projekt mit Docker

Inhaltsverzeichnis Was ist Docker Clientseitiger ...

So binden Sie einen Docker-Container an eine externe IP und einen externen Port

Docker ermöglicht die Bereitstellung von Netzwerk...