Docker ändert die Konfigurationsinformationen eines nicht gestarteten Containers

Docker ändert die Konfigurationsinformationen eines nicht gestarteten Containers

Als ich Docker zum ersten Mal verwendete, habe ich weder Dockerfile noch Docker-Compose verwendet, um den Dienst zu orchestrieren. Ich habe Docker Run direkt verwendet, um den Container zu starten. Wenn die Konfigurationsdatei falsch war oder versehentlich beendet wurde, konnte der Dienst daher nicht mehr gestartet werden. Machen Sie sich jetzt keine Sorgen. Sie können die folgende Methode verwenden, um die Konfigurationsdatei sowie die Portinformationen und andere Konfigurationsinformationen des Startcontainers zu ändern, sodass die Dateien und Daten im Container weiterhin vorhanden sind.

1. Ändern Sie die Konfigurationsinformationen im Container

Hier nehmen wir den Start von Nginx als Beispiel. Beispielsweise verwenden wir Docker Run, um einen Nginx-Container zu erstellen. Als Ergebnis verwenden wir Docker Exec ** Bash, um die interne Nginx-Konfigurationsdatei zu ändern, wodurch der Nginx-Container nicht mehr gestartet wird. Was sollten wir in diesem Fall tun?

#Geben Sie zuerst das folgende Verzeichnis ein cd /var/lib/docker/overlay2
#Suchen Sie die Konfigurationsdatei find ./ -name nginx.conf
./a45cd97113877fb480f66e0d982a594c7b18f2035c16e1f7eb687eef15552272/diff/etc/nginx/nginx.conf
./feff64c1f27a695e531c4654afa3b06e1ca84cc38d81cec76dc5ef52f6821c44/diff/etc/nginx/nginx.conf
./feff64c1f27a695e531c4654afa3b06e1ca84cc38d81cec76dc5ef52f6821c44/zusammengeführt/etc/nginx/nginx.conf
#Wechseln Sie dann mit cd in das Verzeichnis, in dem sich nginx.conf befindet cd ./feff64c1f27a695e531c4654afa3b06e1ca84cc38d81cec76dc5ef52f6821c44/diff/etc/nginx
#Meine Nginx-Konfigurationsdatei befindet sich beispielsweise im Ordner conf.d cd conf.d
Datei default.conf
#Überprüfen Sie, ob die darin enthaltenen Konfigurationsinformationen Ihre eigenen Nginx-Konfigurationsinformationen sind. Wenn dies der Fall ist, ändern Sie sie einfach. Wenn nicht, suchen Sie auf die gleiche Weise in anderen Verzeichnissen, die von find gefunden wurden. vim *.conf
#Starten Sie die Konfigurationsdatei nach dem Ändern direkt. Beispielsweise lautet mein Nginx-Containername apg_nginx
Docker startet apg_nginx

2. Ändern Sie die Konfigurationsinformationen beim Ausführen von Docker

In diesem Fall wird beispielsweise mein Container gestoppt und andere Dienste möchten die von meinem Container zugeordnete Portnummer verwenden oder mein Container möchte zu diesem Zeitpunkt die Ausführungskonfigurationsinformationen ändern. Was soll ich tun?

#Geben Sie das folgende Verzeichnis ein: cd /var/lib/docker/containers
096ed809576e948ada99be65faa181b7f926dd0e655c4c373169305a1954c115 d570bc34c3bb5955ec4c336ad3eeb6105ed49e33e87b8dfd35da3c907d074fdc
662d928aada58645e84fba34f1a1c54696061b767e3e262ccf6562db0498e733 e7237690488f15e40a6462df9cdcfeda83a6f7a74517662935c0a149dd36e057
92bb44f63186c3d80ab8557f84cb1ce907aedab714bb0109827dbfed5641daa8 f2849f199fd78b1636aaedf0bd890c12e7c6d8c6ad5849fff2670920e5e37c7d
d27bdc6286dd3314a1116115cab3a33233b9f4fba45ae4c88a6756d5c04a9aa9
#Überprüfen Sie den Hashwert Ihres Containers. Der Ordner, der mit dem Hashwert beginnt, ist das Konfigurationsverzeichnis des Containers. docker ps -a
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
096ed809576e nginx „nginx -g ‚Daemon von …‘“ vor 3 Monaten 33 Minuten aktiv 0.0.0.0:8081->80/tcp apg_nginx
#Geben Sie das Verzeichnis ein, das mit 096 beginnt cd 096ed809576e*
drwx------ 4 root root 4096 22. Juni 21:41 ./
drwx------ 9 root root 4096 8. März 18:07 ../
-rw-r----- 1 root root 2559664 22. Juni 21:47 096ed809576e948ada99be65faa181b7f926dd0e655c4c373169305a1954c115-json.log
drwx------ 2 root root 4096 8. März 18:07 Checkpoints/
-rw------ 1 root root 3408 22. Juni 21:41 config.v2.json
-rw-r--r-- 1 root root 1519 Juni 22 21:41 hostconfig.json
-rw-r--r-- 1 root root 13. Juni 22 21:41 Hostname
-rw-r--r-- 1 root root 174 22. Juni 21:41 Gastgeber
drwx------ 3 root root 4096 8. März 18:07 mounts/
-rw-r--r-- 1 root root 259 22. Juni 21:41 resolv.conf
-rw-r--r-- 1 root root 71 Juni 22 21:41 resolv.conf.hash
#hostconfig.json ist die Datei, die die Konfigurationsinformationen speichert, wenn run gestartet wird vim hostconfig.json
#Der HostPort-Wert wird der Portnummer des Hostcomputers zugeordnet. Sie können ihn selbst ändern. Nachdem die Änderung abgeschlossen ist, müssen Sie den Docker-Dienst neu starten. Wenn Sie ihn nicht neu starten, wird er nicht wirksam. systemctl docker restart

Durch die Konfigurationsänderungen in den beiden oben genannten Situationen können alle Probleme mit dem von Docker Run gestarteten Container hier geändert und normal gestartet werden. Im Allgemeinen ist es am besten, Docker-Compose zum Starten des Containers zu verwenden.

Zusätzliches Wissen: So zeigen Sie Container-Startprotokolle in Docker an

sudo docker logs -f -t --tail Zeilennummer Containername

Befehlsformat:

$ Docker-Protokolle [OPTIONEN] CONTAINER
Optionen:
--details Weitere Informationen anzeigen -f, --follow Echtzeitprotokolle verfolgen --since string Protokolle nach einem bestimmten Zeitstempel oder einer relativen Zeit anzeigen, z. B. 40 m (also 40 Minuten)
--tail string Wie viele Protokollzeilen werden ab dem Ende des Protokolls angezeigt? Der Standardwert ist „alle“
-t, --timestamps Zeitstempel anzeigen --until Zeichenfolge Protokolle vor einem bestimmten Zeitstempel oder einer relativen Zeit anzeigen, z. B. 40 m (also 40 Minuten)

Sehen Sie sich die Protokolle der letzten 30 Minuten an:

$ Docker-Protokolle – seit 30 Min. CONTAINER_ID

Zeigen Sie die Protokolle nach einer bestimmten Zeit an:

$ docker logs -t --since="2019-08-02T13:23:37" CONTAINER_ID

Protokolle für einen bestimmten Zeitraum anzeigen:

$ docker logs -t --since="2019-08-02T13:23:37" --until "2019-08-03T12:23:37" CONTAINER_ID

Die obige Docker-Änderung der Konfigurationsinformationen des nicht gestarteten Containers ist der gesamte Inhalt, den der Editor mit Ihnen teilt. Ich hoffe, er kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen.

Das könnte Sie auch interessieren:
  • Jedes Mal, wenn Docker einen Container startet, werden die IP und die Hosts mit den angegebenen Operationen
  • Detaillierte Erläuterung der Startreihenfolge des Docker-Containers mithilfe eines Shell-Skripts
  • Dockerfile-Implementierungscode beim Starten von zwei Prozessen in einem Docker-Container
  • Docker-Dateispeicherpfad, Befehlsvorgang zum Starten des Containers abrufen
  • Lösen Sie das Problem, dass Docker-Container sofort nach dem Start beendet werden
  • Docker-Batch starten und alle Container schließen

<<:  Beispielanweisungen für Indizes und Einschränkungen in MySQL

>>:  Vue3 (III) Website Homepage Layout Entwicklung

Artikel empfehlen

SQL-Übung: Produktkategorie-Datenoperation in der Online-Shopping-Datenbank

Datenbank für Online-Einkaufszentren - Produktkat...

Detaillierte Analyse von Javascript-Datenproxys und Ereignissen

Inhaltsverzeichnis Datenbroker und Events Überprü...

So konfigurieren Sie die CDN-Planung mit dem Modul Nginx_geo

Einführung in das Geo-Modul von Nginx Die Geo-Dir...

Was ist die Datei mysql-bin.000001 in MySQL? Kann sie gelöscht werden?

Nachdem ich MySQL über Ports installiert hatte, s...

So implementieren Sie die jQuery-Karussellfunktion

In diesem Artikel wird der Implementierungscode d...

Detaillierte Erläuterung der Anwendung der vier Zustände der Hyperverbindung

Obwohl Sie denken, dass es sich möglicherweise um...

So implementieren Sie die Seiten-Screenshot-Funktion in JS

„Seiten-Screenshot“ ist eine Anforderung, die häu...

Verwenden Sie Elasticsearch, um Indexdaten regelmäßig zu löschen

1. Manchmal verwenden wir ES Aufgrund begrenzter ...

Aufzeichnungen zur Verwendung von SSH-Befehlen unter Windows 8

1. Öffnen Sie die virtuelle Maschine und das Git-...

So richten Sie die passwortfreie SSH-Anmeldung beim Linux-Server ein

Bei jeder Anmeldung am Testserver ist grundsätzli...

Erfahren Sie mehr über den Ereignisplaner EVENT in MySQL

Der Ereignisplaner in MySQL, EVENT, wird auch als...

Zusammenfassung einiger gängiger Methoden von JavaScript-Arrays

Inhaltsverzeichnis 1. Einleitung 2. filter() 3. K...