So legen Sie die Speichergröße von Docker Tomcat fest

So legen Sie die Speichergröße von Docker Tomcat fest

Wenn Sie Tomcat in Docker installieren, kann es beim Herunterladen großer Dateien oder in manchen Fällen zu einem Speicherüberlauf kommen. Sie müssen daher die Speichergröße von Tomcat konfigurieren. Es gibt zwei Möglichkeiten, die Speichergröße von Tomcat in Docker zu konfigurieren:

1. Mounten Sie die Konfigurationsdatei im Docker

Mounten Sie die catalina.sh-Konfigurationsdatei von Tomcat im Docker auf dem Hostcomputer und konfigurieren Sie dann die JVM-Speichergröße in catalina.sh.

1. Sie müssen einen Tomcat-Container erneut ausführen (Hinweis: Port und Containername können nicht wiederholt werden).

 docker run -d \
 -v /server/webapps:/usr/local/tomcat/webapps/ \
 -v /server/catalina.sh:/usr/local/tomcat/bin/catalina.sh \
 -v /server/logs/demo:/server/logs/demo \
 -e TZ="Asien/Shanghai" \
 --privilegiert=true \
 --name demo \
 -p 8080:8080 \
 tomcat8

veranschaulichen:

* -v /server/webapps:/usr/local/tomcat/webapps/ Mountet das laufende Verzeichnis des aktuellen Projekts in die Webapps unter Tomcat

* -v /server/catalina.sh:/usr/local/tomcat/bin/catalina.sh mountet die catalina.sh des Hosts in die catalina.sh unter Tomcat im Docker

* -v /server/logs/demo:/server/logs/demo mountet Protokolle auf dem Host

* -e TZ="Asia/Shanghai" Zeitzone festlegen

* --privileged=true Eingestellt, um echte Root-Rechte im Container zu haben

* -p 8080:8080 Mapping-Port

* Der Name des Tomcat8-Image

2. Konfigurationsspeicher in catalina.sh

Fügen Sie unten cygwin=false hinzu:

JAVA_OPTS="-server -Xms1024m -Xmx2048m -XX:MaxNewSize=256m -XX:PermSize=128m -XX:MaxPermSize=256m"

-xms Heap-Speicher initialisieren

-xmx Maximaler Heap-Speicher

2. Ändern Sie direkt die Konfiguration von catalina.sh des Tomcat-Containers

Sie können den Container direkt aufrufen und die Konfigurationsdatei catalina.sh von Tomcat ändern. Diese Methode wird jedoch nicht empfohlen, da sie in Zukunft zu Problemen führen kann und die Konfiguration nicht bequem ist. Wenn Sie den Container erneut ausführen müssen, kennen Sie die Konfiguration der Speichergröße im Container nicht.

1. Betreten Sie den Container

docker exec -it <Containername> /bin/bash

2. Suchen Sie die Konfigurationsdatei catalina.sh und fügen Sie die Konfiguration hinzu (die im ersten Schritt hinzugefügte Konfigurationsanweisung ist ausreichend).

// Wenn kein vi-Befehl vorhanden ist, müssen Sie vi /usr/local/tomcat/bin/catalina.sh installieren
// Container verlassen und exit neu starten
Docker-Neustart <Containername>

Beachten:

Wenn Sie beim Ändern von Catalina.sh aufgefordert werden, die Datei als schreibgeschützte Datei anzuzeigen oder keine Berechtigung zum Ändern zu haben, müssen Sie den Container mit Root-Berechtigungen aufrufen. Die spezifische Methode lautet wie folgt

Ergänzung: Root-Rechte in Docker-Containern erhalten

Es gibt einige Vorgänge, die häufig im Docker-Container ausgeführt werden müssen, z. B. wenn plötzlich eine Konfigurationsdatei geändert werden muss usw., aber zum Ändern der Datei sind Root-Berechtigungen erforderlich. Sie können sich auf die folgende Lösung beziehen

Normalerweise werden Sie beim Ändern von Dateien gefragt: schreibgeschütztes Dateisystem oder Zugriff verweigert

1. Mounten Sie die Konfigurationsdatei

Wenn Sie den Docker-Container ausführen, können Sie die Konfigurationsdatei auf den Hostcomputer kopieren und dann beim Ausführen den Parameter -v laden, um die Konfigurationsdatei des Hostcomputers in Docker bereitzustellen.

2. Rufen Sie den Docker-Container mit Root-Rechten auf

Befehl:

docker exec -it -u root <Container-ID> /bin/bash

Beachten:

Voraussetzung für die Ausführung des obigen Befehls ist, dass beim Ausführen des Containers dieser Parameter hinzugefügt wird: --privileged=true. Andernfalls wird beim Aufrufen des Containers weiterhin angezeigt, dass Sie keine Berechtigung zum Ändern haben.

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 installieren Sie Tomcat8 im Docker
  • Beim Zugriff auf die Homepage eines im Docker-Modus gestarteten Tomcat tritt ein 404-Fehler auf
  • So installieren Sie Tomcat in Docker und stellen das Springboot-Projekt-War-Paket bereit
  • Schritte zum Bereitstellen mehrerer Tomcat-Dienste mithilfe von DockerFile im Docker-Container
  • Docker Nginx-Container und Tomcat-Container zur Realisierung von Lastausgleich und dynamischen und statischen Trennungsvorgängen
  • Detaillierte Schritte zur Installation von Tomcat, MySQL und Redis mit Docker
  • Warum wird mir die Zugriffsschnittstelle für Docker Tomcat nicht angezeigt?

<<:  Detaillierte Erklärung zu MySQL-Phantomlesevorgängen und wie man sie eliminiert

>>:  Designtheorie: Menschenorientiertes Designkonzept

Artikel empfehlen

So lassen sich Python-Skripte direkt unter Ubuntu ausführen

Nehmen wir als Beispiel das Übersetzungsprogramm....

Detaillierte Erläuterung der Datentypprobleme bei der JS-Array-Indexerkennung

Als ich ein WeChat-Applet-Projekt schrieb, gab es...

Nutzerbedürfnisse führen zu marketingorientiertem Design

<br />Zu jedem unserer Themen bespricht das ...

So installieren Sie MySQL und Redis in Docker

Dieser Artikel basiert auf der CentOS 7.3-Systemu...

Vergleich zwischen Redis und Memcache und Auswahlmöglichkeiten

Ich verwende Redis seit Kurzem und finde es recht...

Tutorial zur MySQL-Installation in der Linux-CentOS7-Umgebung

Detaillierte Einführung in die Schritte zur Insta...

Detaillierte Erklärung der Webseiten-Screenshot-Funktion in Vue

Seit Kurzem besteht im Projekt die Anforderung, B...

Eine bunte Katze unter Linux

Freunde, die das Linux-System verwendet haben, mü...

Ein Beispiel für die Implementierung eines adaptiven Quadrats mit CSS

Die traditionelle Methode besteht darin, ein Quad...

Ein einfaches Beispiel für die Verwendung von Vue3-Routing VueRouter4

Routenplanung vue-router4 behält den Großteil der...

MySQL verwendet Binlog-Protokolle zur Implementierung der Datenwiederherstellung

MySQL Binlog ist ein sehr wichtiges Protokoll in ...