Beispiel für die Verwendung des Supervisors zum Verwalten von Nginx+Tomcat-Containern

Beispiel für die Verwendung des Supervisors zum Verwalten von Nginx+Tomcat-Containern

brauchen:

Verwenden Sie Docker, um den Dualprozess Nginx + Tomcat zu starten. In tatsächlichen Anwendungen sind mehrere Prozesse recht üblich.

1: Erstellen Sie ein Dockerfile-Verzeichnis

mkdir -p /docker/web

2: Dockerfile schreiben: /docker/web/Dockerfile

VON centos7

WARTUNGSBEARBEITER lin [email protected]

KOPIEREN Sie CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo

KOPIEREN Sie nginx_install.sh /tmp/nginx_install.sh

RUN sh /tmp/nginx_install.sh; \rm -rf /usr/local/src/*

RUN sed -i -e '/worker_processes/a Daemon aus;' /usr/local/nginx/conf/nginx.conf;

 

KOPIEREN Sie jdk-8u162-linux-x64.tar.gz /usr/local/src/jdk-8u162-linux-x64.tar.gz

KOPIEREN Sie tomcat_install.sh /tmp/tomcat_install.sh

RUN sh /tmp/tomcat_install.sh; \rm -rf /usr/local/src/*

 

KOPIEREN supervisor_install.sh /tmp/supervisor_install.sh

KOPIEREN Sie supervisord.conf /etc/supervisord.conf

KOPIEREN Sie start_tomcat.sh /usr/local/tomcat/bin/mystart.sh

RUN sh /tmp/supervisor_install.sh; \rm -rf /tmp/*.sh

3: In Dockerfile integrierte Konfigurationsdateien und Installationsdateien

3.1 Der Download der Standardquelle ist langsam. Ändern Sie die Yum-Quelle, kopieren Sie die folgende CentOS-Base.repo-Konfigurationsdatei in den Container und ändern Sie sie

KOPIEREN Sie CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo

[root@docker web]# cat CentOS-Base.repo 

[Base]

Name=CentOS-$releasever - Basis

Basis-URL = http://mirrors.163.com/centos/$releasever/os/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

 

#veröffentlichte Updates

[Aktualisierungen]

Name=CentOS-$releasever - Aktualisierungen

Basis-URL = http://mirrors.163.com/centos/$releasever/updates/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

 

#zusätzliche Pakete, die nützlich sein könnten

[Extras]

Name=CentOS-$releasever - Extras

Basis-URL = http://mirrors.163.com/centos/$releasever/extras/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

 

#zusätzliche Pakete, die die Funktionalität bestehender Pakete erweitern

[centosplus]

Name=CentOS-$releasever - Plus

Basis-URL = http://mirrors.163.com/centos/$releasever/centosplus/$basearch/

gpgcheck=1

aktiviert=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 

3.2nginx-Installationsskript

[root@docker web]# cat nginx_install.sh 

yum install -y wget tar gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel

 

cd /usr/local/src

wget 'http://nginx.org/download/nginx-1.12.2.tar.gz'

tar -zxvf nginx-1.12.2.tar.gz

cd nginx-1.12.2

./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-stream --with-stream_ssl_module

machen

installieren

Ausfahrt 0

3.3Tomcat-Installationsskript

[root@docker web]# cat tomcat_install.sh 

yum install -y wget tar

cd /usr/local/src/

tar -zxvf jdk-8u162-linux-x64.tar.gz

mv jdk1.8.0_162 /usr/lokal/

#/usr/local/jdk1.8.0_162/bin/java -version

 

#Java-Umgebungsvariablen konfigurieren echo 'JAVA_HOME=/usr/local/jdk1.8.0_162/' >>/etc/profile

echo 'PATH=$PATH:$JAVA_HOME/bin' >>/etc/profile

echo 'CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH' >>/etc/Profil

Quelle /etc/Profil

 

wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.38/bin/apache-tomcat-8.5.38.tar.gz

tar -zxvf apache-tomcat-8.5.38.tar.gz

mv apache-tomcat-8.5.38 /usr/local/tomcat

3.4 Die in der Dockerfile-Datei enthaltenen Konfigurationsdateien, Skripte und Installationspakete lauten wie folgt

[root@docker web]# ll

insgesamt 185384

-rw-r--r-- 1 root root 835 9. März 01:12 CentOS-Base.repo

-rw-r--r-- 1 root root 669 9. März 01:11 Dockerfile

-rw-r--r-- 1 root root 189815615 9. März 01:15 jdk-8u162-linux-x64.tar.gz

-rw-r--r-- 1 root root 340 9. März 01:13 nginx_install.sh

-rw-r--r-- 1 root root 581 9. März 01:17 tomcat_install.sh

4: Ein-Klick-Installation des Supervisors: /docker/web/supervisor_install.sh

yum -y installiere epel-release
yum -y installiere python2-pip
pip installieren Supervisor

5: Supervisor-Konfigurationsdatei: /docker/web/supervisord.conf

[unix_http_server]

file=/tmp/supervisor.sock ; der Pfad zur Socket-Datei

 

[Vorgesetzter]

logfile=/tmp/supervisord.log; logfile_maxbytes=50MB; maximal 50 MB logfile_backups=10; 10 Protokollsicherungen in Rotationloglevel=info; Protokollebenenaufzeichnung infopidfile=/tmp/supervisord.pid;pid

nodaemon=true ; Im Vordergrund starten minfds=102400 ; Dateideskriptor-Limit minprocs=2000 ; Anzahl der Prozesse [rpcinterface:supervisor]

supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

 

[Supervisorctl]

serverurl=unix:///tmp/supervisor.sock ; verwenden Sie eine unix://-URL für einen Unix-Socket

 

[Programm: nginx]

command=/usr/local/nginx/sbin/nginx ; Starte nginx im Vordergrund

autostart=true; startet automatisch mit Supervisorstartsecs=10; ein normaler Start wird nach 10 Sekunden Start berücksichtigtautorestart=true; startet automatisch neu, nachdem das Programm beendet wurdestartretries=3; die Anzahl der automatischen Wiederholungsversuche, wenn der Start fehlschlägtstdout_logfile_maxbytes=20MB; die maximale Größe der stdout-Protokolldatei beträgt 20 MB

stdout_logfile=/usr/local/nginx/logs/out.log

 

[Programm: Tomcat]

command=sh /usr/local/tomcat/bin/mystart.sh ; Tomcat im Vordergrund starten

autostart=true; startet automatisch mit Supervisorstartsecs=10; ein normaler Start wird nach 10 Sekunden Start berücksichtigtautorestart=true; startet automatisch neu, nachdem das Programm beendet wurdestartretries=3; die Anzahl der automatischen Wiederholungsversuche, wenn der Start fehlschlägtstdout_logfile_maxbytes=20MB; die maximale Größe der stdout-Protokolldatei beträgt 20 MB

stdout_logfile=/usr/local/tomcat/logs/catalina.out

6: Tomcat-Startskript /docker/web/start_tomcat.sh

#Da der Supervisor die Quelle nicht verwenden kann, müssen Sie ein Skript schreiben, um die Quelle /etc/profile zu starten

/usr/local/tomcat/bin/catalina.sh ausführen

7: Erstellen Sie das Image

cd /docker/web
Docker-Build -t shijiange_web.

[root@docker web]# Docker-Bilder
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
shijiange_web latest bc06a9974252 vor 7 Sekunden 1,33 GB

8: Containertest starten

[root@docker web]# docker run -d shijiange_web /bin/bash -c 'supervisord -c /etc/supervisord.conf'

76782ab71c3b1d2f818ad76214d6336ae11a524eeb9d211f154fe4ad5226015d

[root@docker web] 

[root@docker web]# docker ps

CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN

76782ab71c3b shijiange_web "container-entrypo..." vor 12 Sekunden Up 12 Sekunden happy_jones

9. Testüberprüfung:

[root@docker web]# docker exec -it 76782ab /bin/bash
bash-4.2# ifconfig 

10. Containerüberprüfung: curl nginx

11. Containerüberprüfung: curl tomcat

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:
  • So richten Sie virtuelle Verzeichnisse ein und konfigurieren virtuelle Pfade in Tomcat 7.0
  • Erklärung zur Verwendung von Tomcat mit IDEA Remote Debug
  • Tomcat verwendet Log4j zur Ausgabe des catalina.out-Protokolls
  • Centos7.5 Konfiguration Java-Umgebung Installation Tomcat Erklärung
  • Connector-Konfiguration in Tomcat
  • Erläuterung der Schritte für Tomcat zur Unterstützung des https-Zugriffs
  • Erläuterung zur Optimierung der Tomcat+MySQL-Konfiguration mit hoher Parallelität
  • Erläuterung zur Verwendung und Änderung des Standard-Programmveröffentlichungspfads von Tomcat
  • Detaillierte Erläuterung der drei Möglichkeiten zum Schneiden von Catalina.out-Protokollen in Tomcat
  • Erläuterung verschiedener Möglichkeiten zum Ausführen von Tomcat unter Linux

<<:  js implementiert den Algorithmus zur Angabe der Reihenfolge und Menge der roten Umschläge

>>:  Beispiele für Optimierungstechniken zur Verbesserung der Effizienz langsamer Abfragen in MySQL IN-Anweisungen

Artikel empfehlen

mysql5.7 Installations- und Konfigurationstutorial unter Centos7.3

In diesem Artikel finden Sie das Installations- u...

Analyse des Parameterübertragungsprozesses des Treibermoduls in Linux

Deklarieren Sie den Parameternamen, den Typ und d...

MySQL-Sequenz AUTO_INCREMENT ausführliche Erklärung und Beispielcode

MySQL-Sequenz AUTO_INCREMENT ausführliche Erkläru...

jQuery erzielt den Effekt einer Werbung, die nach oben und unten gescrollt wird

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

Beispiel für Auslassungspunkte bei Überlauf von mehrzeiligem CSS-Text

Auslassungspunkte werden angezeigt, wenn mehrzeil...

Idea stellt Remote-Docker bereit und konfiguriert die Datei

1. Ändern Sie die Docker-Konfigurationsdatei des ...

Bedeutung der Hintergrundfarbdeklaration beim Schreiben von Stilen

Wie der Titel schon sagt, kann andernfalls bei ein...

MySQL-Datentabellenpartitionierungsstrategie und Vor- und Nachteileanalyse

Inhaltsverzeichnis Warum brauchen wir Partitionen...

Einführung in die Verschlüsselung des Grub-Boot-Programms in Linux

Inhaltsverzeichnis 1. Was ist Grub-Verschlüsselun...

So verwenden Sie Maxwell zum Synchronisieren von MySQL-Daten in Echtzeit

Inhaltsverzeichnis Über Maxwell Konfiguration und...

Detaillierte Erklärung der TMPF-Mounts im Docker-Datenspeicher

Bevor Sie diesen Artikel lesen, hoffe ich, dass S...

Eine kurze Diskussion zu this.$store.state.xx.xx in Vue

Inhaltsverzeichnis Sehen Sie sich dies an.$store....