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:
|
<<: js implementiert den Algorithmus zur Angabe der Reihenfolge und Menge der roten Umschläge
Dieser Artikel basiert auf dem Free Code Camp Bas...
In diesem Artikel finden Sie das Installations- u...
Deklarieren Sie den Parameternamen, den Typ und d...
MySQL-Sequenz AUTO_INCREMENT ausführliche Erkläru...
1. Laden Sie MySQL von der offiziellen Website he...
In diesem Artikel wird der spezifische Code von j...
Auslassungspunkte werden angezeigt, wenn mehrzeil...
1. Ändern Sie die Docker-Konfigurationsdatei des ...
Inhaltsverzeichnis 1. Einleitung 2. Nutzung 3. En...
Wie der Titel schon sagt, kann andernfalls bei ein...
Inhaltsverzeichnis Warum brauchen wir Partitionen...
Inhaltsverzeichnis 1. Was ist Grub-Verschlüsselun...
Inhaltsverzeichnis Über Maxwell Konfiguration und...
Bevor Sie diesen Artikel lesen, hoffe ich, dass S...
Inhaltsverzeichnis Sehen Sie sich dies an.$store....