Docker führt mehrere Springboot Erstens: Port-Mapping Zweitens: Speichergröße festlegen Drittens: Physische Dateien lesen und schreiben Viertens: Protokolldateien Fünftens: Interner Netzwerkzugriff mehrerer Container Sechstens: Aufgetretene Probleme Erstens: Port Mapping Nginx verwendet Weiterleitung, daher ist dies am einfachsten. [hn@iZbp1gp1t778obaz5m8vk8Z Anleitungen]$ docker run -d -p 8093:8093 guides-collect Ordnen Sie einfach den physischen Port einem virtuellen Port zu. Das ist ganz einfach. Zweitens: Speichergröße festlegen -m, --memory Speicherlimit, das Format ist eine Zahl plus eine Einheit, die Einheit kann b, k, m, g sein. Mindestens 4M --memory-swap Gesamtspeicherlimit + Größe der Swap-Partition. Gleiches Format wie oben. Muss größer sein als das durch -m --memory-reservation festgelegte weiche Limit. Speicherlimit. Gleiches Format wie oben --oom-kill-disable Gibt an, ob OOM-Killer das Töten von Containern verhindern soll. Standardmäßig nicht festgelegt. --oom-score-adj Die Priorität des Containers, der vom OOM-Killer getötet wird. Der Bereich liegt zwischen [-1000 und 1000], der Standardwert ist 0. --memory-swappiness wird verwendet, um das virtuelle Speichersteuerungsverhalten des Containers festzulegen. Der Wert ist eine Ganzzahl zwischen 0 und 100. --kernel-memory Kernel-Speicherlimit. Gleiches Format wie oben, Mindestgröße ist 4M Beispiel: [hn@iZbp1gp1t778obaz5m8vk8Z Anleitungen]$ docker run -d -m 1G --memory-swap 4G -p 8093:8093 Anleitungen sammeln Der dritte: physische Dateien lesen und physische Dateien schreiben Die beiden oben genannten Situationen werden beim Start geladen, aber was soll ich tun, wenn ich während der Laufzeit kontinuierlich lokale Dateien lesen muss? [hn-docker@iZbp1gp1t778obaz5m8vk8Z ~]$ docker run -d -m 1G --memory-swap 4G -p 8092:8092 \ -v /home/hn-docker/docker/wechat:/springboot/wechat \ Führer-Nachricht Der Start des Nachrichtencontainers entspricht der Zuordnung der Dateiadresse im Image zur Adresse auf dem physischen Computer. Die Imageadresse lautet beispielsweise: /springboot/wechat Physische Adresse: /home/hn-docker/docker/wechat Halterungen binden Der Bind-Mount-Modus ist dem von Volumes sehr ähnlich. Der Unterschied besteht darin, dass der Bind-Mount-Modus jede Datei oder jeden Ordner auf dem Host in den Container einbindet, während Volumes im Wesentlichen einen vom Docker-Dienst verwalteten Bereich (der Standard ist ein Ordner unter /var/lib/docker/volumes) in den Container einbindet. Die Verwendung von Bind-Mounts ähnelt der von Volumes, und die Hostdateien werden über Wenn Sie den Parameter $ docker run -d \ --name=nginxtest \ --mount Typ=binden,Quelle=/usr/local/web,Ziel=/usr/share/nginx/html \ nginx:neueste Das obige Beispiel mountet den Ordner /usr/local/web auf dem Host in den Ordner /usr/share/nginx/html im Container. Oder verwenden Sie den Parameter $ docker run -d \ --name=nginxtest \ -v /usr/local/web:/usr/share/nginx/html \ nginx:neueste Weitere Einzelheiten finden Sie unter: Detaillierte Erläuterung zu Docker Data Storage Bind Mounts Viertens: Protokolldatei Schritt 1: Holen Sie sich die ID des laufenden Containers: da3199e9d032 [hn@iZbp1gp1t778obaz5m8vk8Z Anleitungen]$ Docker PS CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN da3199e9d032 guides-collect "java -Djava.secur..." vor 2 Stunden Vor 2 Stunden 0.0.0.0:8093->8093/tcp sharp_mirzakhani Schritt 2: Abfrage des laufenden Protokolls - Fertig [hn@iZbp1gp1t778obaz5m8vk8Z guides]$ docker logs -f 51c384b8afee Referenzinformationen: 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. 42 m (also 42 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. 42 m (also 42 Minuten) Beispiel: Zeigen Sie die Protokolle nach der angegebenen Zeit an und zeigen Sie nur die letzten 100 Zeilen an: $ Docker-Protokolle -f -t --since="2018-02-08" --tail=100 CONTAINER_ID 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="2018-02-08T13:23:37" CONTAINER_ID Protokolle für einen bestimmten Zeitraum anzeigen: $ docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" CONTAINER_ID Fünftens: Interaktion zwischen Host- und Containernetzwerk Problembeschreibung: Sind Sie sprachlos, wenn das in Ihrem Docker ausgeführte Springboot auf das Redis des Hosts zugreifen und das MySQL anderer Container abrufen möchte? Lösung: Sie müssen die Soft-Connection-IP des Host-Containers abfragen und die Intranet-IP verwenden, um darauf zuzugreifen. docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' xxxid (Container-ID) Zum Beispiel: [yn@iZbp1gp1t778obaz5m8vk8Z Protokolle]$ docker ps -a CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN abe77b60254a Assistent „java -Djava.secur…“ vor 6 Minuten Vor 6 Minuten 0.0.0.0:9304->8091/tcp nostalgic_albattani 37c6dd777636 collect "java -Djava.secur..." vor 30 Stunden Vor 30 Stunden 0.0.0.0:8093->8093/tcp silly_poincare 4dcb9fcae281 Nachricht „java -Djava.secur...“ vor 3 Tagen Seit 3 Tagen aktiv 0.0.0.0:8092->8092/tcp reverent_galileo So überprüfen Sie beispielsweise: abe77b60254a Die Netzwerkadresse dieses Containers [yn@iZbp1gp1t778obaz5m8vk8Z logs]$ docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' abe77b60254a 172.17.0.4 Zu diesem Zeitpunkt: Die IP-Adresse des Containers abe77b60254a lautet: 172.17.0.4 Wenn Sie darauf zugreifen möchten, verwenden Sie einfach die Intranetadresse 172.17.0.4. Gleichzeitig können Sie auch wissen, dass die IP des Hostcomputers 172.17.0.1 sein sollte Sechstens: Die Fallstricke, denen Sie begegnen werden 1: Der Start des Spiegels schlägt fehl. So zeigen Sie das Protokoll an Wenn der Start fehlschlägt, müssen Sie wissen, um welche Image-ID es sich handelt, und dann das Protokoll zur Überprüfung verwenden: docker logs -f image id Zum Beispiel: [yn@iZbp1gp1t778obaz5m8vk8Z Protokolle]$ docker ps -a CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN abe77b60254a Assistent „java -Djava.secur…“ vor 6 Minuten Vor 6 Minuten 0.0.0.0:9304->8091/tcp nostalgic_albattani 37c6dd777636 collect "java -Djava.secur..." vor 30 Stunden Vor 30 Stunden 0.0.0.0:8093->8093/tcp silly_poincare 4dcb9fcae281 Nachricht „java -Djava.secur...“ vor 3 Tagen Seit 3 Tagen aktiv 0.0.0.0:8092->8092/tcp reverent_galileo Überprüfen Sie die letzten 10 Zeilen dieses Containerprotokolls [yn@iZbp1gp1t778obaz5m8vk8Z ~]$ docker logs -f -t --tail 10 abe77b60254a 2. Die in der Datenbank gespeicherte Protokollzeit oder Daten sind 8 Stunden kürzer als die tatsächliche Zeit RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone Dies ist das Ende dieses Artikels über das ausführliche Tutorial zum Ausführen mehrerer Springboots mit Docker. Weitere Informationen zum Ausführen mehrerer Springboots mit Docker finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die folgenden verwandten Artikel weiter. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
>>: Schritte zum Aufteilen und Komprimieren von CSS mit Webpack und zum Importieren mit Link
Dieser Artikel verwendet Vue, um einfach die Ände...
Inhaltsverzeichnis Standardausführungsprozess Opt...
Win10-Installation (überspringen, falls bereits i...
Wenn ich Vue lerne und immer Webpack-Anweisungen ...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ...
Inhaltsverzeichnis 1. Datenbankdesign 2. Frontend...
Inhaltsverzeichnis 1. Was ist eine Veranstaltung?...
Manchmal ist es schön, ein paar nette Scrollbar-E...
Drei Wissenspunkte: 1. CSS-Nachkommenselektor htt...
In diesem Artikel finden Sie das Download-, Insta...
In diesem Artikelbeispiel wird der spezifische Ja...
Sich gut zu ernähren und ausreichend zu schlafen,...
In diesem Artikelbeispiel wird der spezifische Co...
Mit dem Befehl „Find“ können Sie in einem angegeb...
Der Redakteur wollte vor Kurzem mit dem macOS-Sys...