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

Detaillierte Erklärung der Verwendung des Fuser-Befehls in Linux

beschreiben: fuser kann anzeigen, welches Program...

Zusammenfassung der Tipps zur Verwendung von coalesce() in MySQL

Vorwort Kürzlich habe ich zufällig MySQLs Coalesc...

MySQL versteht kurz, wie "order by" funktioniert

Zum Sortieren ist „order by“ ein Schlüsselwort, d...

Einführung in die Installationsmethode in Vue

Inhaltsverzeichnis 1. Weltweit registrierte Kompo...

Verwenden von Textschatten- und Elementschatteneffekten in CSS

Einführung in Textschatten Verwenden Sie in CSS d...

Verlustfreie Erweiterungsmethode unter Linux

Überblick Der Server des Cloud-Plattform-Kunden k...

Swiper+echarts realisiert den Links- und Rechts-Scrolleffekt mehrerer Dashboards

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

Analyse der MySQL-Methode zum Exportieren nach Excel

Dieser Artikel beschreibt, wie Sie MySQL zum Expo...

Mit CSS3 erstellter Hover-Zoom-Effekt

Ergebnis:Implementierungscode: html <link href...