Docker-Image-Erstellung und Paketierung und Bereitstellung des gesamten Projekts mit einem Klick

Docker-Image-Erstellung und Paketierung und Bereitstellung des gesamten Projekts mit einem Klick

Einführung in allgemeine Dockerfile-Anweisungen

Anweisung beschreiben
AUS Das Image, auf dessen Basis das neue Image erstellt wird. Beispiel: FROM centos:6
BEWAHRER Der Name oder die E-Mail-Adresse des Bildverwalters. Beispiel: WARTUNGSARBEITER Herrchen
LAUFEN Shell-Befehl, der beim Erstellen des Images ausgeführt werden soll. Beispiel: RUN ["yum","install","httpd"]
Oder führen Sie „yum install httpd“ aus.
CMD Der Shell-Befehl, der beim Ausführen des Containers ausgeführt wird (kann durch zur Laufzeit übergebene Parameter überschrieben werden). Beispiel: CMD ["-c","/start.sh"]
Oder CMD ["/usr/sbin/sshd","-D"] oder CMD /usr/sbin/sshd -D
EXPONIEREN Deklarieren Sie den Service-Port, auf dem der Container ausgeführt wird. Beispiel: EXPOSE 80 443
Umwelt Legen Sie die Umgebungsvariablen im Container fest. Beispiel: ENV MYSQL_ROOT_PASSWORD 123456
HINZUFÜGEN Dateien oder Verzeichnisse in das Image kopieren (können automatisch dekomprimiert oder heruntergeladen werden)
Zum Beispiel: ADD ["src","dest"] oder ADD https://xxx.com/html.tar.gz /var/www/html
Oder: ADD html.tar.gz /var/www/html
KOPIE Kopiert Dateien oder Verzeichnisse in das Image (kann nicht automatisch dekomprimiert werden). Beispiel: COPY ./start.sh /start.sh
EINSTIEGSPUNKT Der Shell-Befehl, der beim Ausführen des Containers ausgeführt wird (kann nicht durch zur Laufzeit übergebene Parameter überschrieben werden). Beispiel: ENTRYPOINT ["/bin/bash","-c","/start.sh"]
oder ENTRYPOINT /bin/bash -c "/start.sh"
VOLUMEN Geben Sie den Container-Einhängepunkt für das Verzeichnis oder einen anderen Container an, der automatisch vom Host generiert wird.
Beispiel: VOLUME ["/var/lib/mysql"]
BENUTZER Geben Sie den laufenden Benutzer für die Befehle RUN, CMD und ENTRYPOINT an
Beispiel: USER Mr_chen
ARBEITSVERZEICHNIS Legen Sie das Arbeitsverzeichnis für RUN, CMD, ENTRYPOINT, COPY und ADD fest (geben Sie das Standardverzeichnis an, in das beim Betreten des Containers gewechselt werden soll).
Beispiel: WORKDIR /data
GESUNDHEITSCHECK Gesundheitscheck. Beispiel: HEALTHCHECK --interval=5m --timeout=3s --retries=3
CMD curl -f http://localhost/ || Ausgang 1
ARG Geben Sie beim Erstellen des Images einige Parameter an. Beispiel: ARG-Benutzer

Verwenden Sie Dockerfile, um ein einfaches nginxWeb-Image zu schreiben

#Aktivieren Sie zuerst die IPv4-Weiterleitung echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf 
sysctl -p
net.ipv4.ip_forward = 1

#Erstellen Sie das Nginx-Spiegelverzeichnis mkdir -p dockerfile/lib/centos/nginx
cd dockerfile/lib/centos/nginx

#Dockerfile-Datei vorbereiten vim Dockerfile
FROM centos:7 #Auf welcher Basis basiert das neu erstellte Image? (Das erstellte Nginx basiert auf Centos7 und basiert auf der Systemunterstützung von Centos7. Wenn kein Image vorhanden ist, wird es automatisch heruntergeladen.)
MAINTAINER wk #Image-Produzent RUN yum install -y gcc gcc-c++ make openssl-devel pcre-devel #Führen Sie beim Erstellen von Images Shell-Befehle aus, yum installiert die Abhängigkeitspakete von nginx ADD nginx-1.12.1.tar.gz /tmp #Kopieren Sie Dateien oder Verzeichnisse in das Image und dekomprimieren Sie komprimierte Dateien automatisch RUN cd /tmp/nginx-1.12.1 && \ #Führen Sie Shell-Befehle aus, um nginx zu kompilieren und zu installieren, make -j, um mit 2 Threads zu kompilieren./configure --prefix=/usr/local/nginx && \
  make -j 2 && \
  installieren
RUN rm -rf /tmp/nginx-1.12.1* && yum clean all #Nginx-Quellpaket löschen und Yum-Cache leeren, um den Container so leicht wie möglich zu machen. COPY nginx.conf /usr/local/nginx/conf #Dateien oder Verzeichnisse in das Image kopieren. WORKDIR /usr/local/nginx #Arbeitsverzeichnis für RUN, CMD, ENTRYPOINT, COPY und ADD festlegen (das Verzeichnis angeben, das beim Aufrufen des Containers standardmäßig gewechselt wird).
EXPOSE 80 #Deklarieren Sie die Portnummer des Containers CMD ["./sbin/nginx", "-g", "daemon off;"] #Der Shell-Befehl, der beim Ausführen des Containers -g daemon off ausgeführt wird, startet nginx nicht als Daemon-Prozess, d. h. startet nginx nicht im Hintergrund
#Kopieren Sie die vorbereiteten Konfigurationsdateien nginx-1.12.1.tar.gz und nginx.conf in das aktuelle Verzeichnis ls
Docker-Datei nginx-1.12.1.tar.gz nginx.conf

#Erstellen Sie ein Docker-Image basierend auf Nginx Docker Build -t nginx:1.
#nginx Hauptkonfigurationsdatei cat conf/nginx.conf
Benutzer root; 
Arbeiterprozesse automatisch; 

error_log Protokolle/error.log Informationen;

pid-Protokolle/nginx.pid; 


Ereignisse {
  verwenden Sie epoll; 
}

http {

  mime.types einschließen;
  Standardtyp Anwendung/Oktett-Stream;

  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
           '$status $body_bytes_sent "$http_referer" '
           '"$http_user_agent" "$http_x_forwarded_for"';

  access_log Protokolle/access.log Haupt;
  sendfile an;
  KeepAlive-Timeout 65;

  Server {
    hören Sie 80;
    Servername localhost;
    Stamm-HTML;
    Index Index.html Index.php;

    Standort ~ \.php$ {
      Stamm-HTML;
      fastcgi_pass lnmp_php:9000; #lnmp_ph ist der Hostname des PHP-Containers, der der IP-Adresse von PHP entspricht fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
      fastcgi_params einschließen;
    }
  }
}

Erstellen Sie ein PHP-Website-Plattformbild

#Erstellen Sie ein Spiegelverzeichnis für PHP mkdir -p /root/dockerfile/lib/centos/php
cd /root/dockerfile/lib/centos/php

#Dockerfile-Datei vorbereiten vim Dockerfile 
FROM centos:7 #Das neue Image basiert auf dem Centos7-Image MAINTAINER wk #Der neue Image-Produzent RUN yum install -y gcc gcc-c++ make gd-devel libxml2-devel libcurl-devel libjpeg-devel libpng-devel openssl-devel #Shell ausführen, um Abhängigkeiten zu installieren ADD php-5.6.31.tar.gz /tmp/ #Installationspaket in /tmp ablegen und automatisch dekomprimieren RUN cd /tmp/php-5.6.31 && \ #PHP kompilieren und installieren, PHP-Startdatei kopieren und Konfiguration der Startdatei ändern./configure --prefix=/usr/local/php \
  --with-config-file-path=/usr/local/php/etc \
  --mit-mysql --mit-mysqli \
  --mit-openssl --mit-zlib --mit-curl --mit-gd \
  --with-jpeg-dir --with-png-dir --with-iconv \
  --enable-fpm --enable-zip --enable-mbstring && \
  make -j 4 && \
  make install && \
  cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf && \
  sed -i "s/127.0.0.1/0.0.0.0/" /usr/local/php/etc/php-fpm.conf && \
  sed -i "21a \daemonize = no" /usr/local/php/etc/php-fpm.conf
COPY php.ini /usr/local/php/etc #Kopieren Sie die Hauptkonfigurationsdatei von PHP RUN rm -rf /tmp/php-5.6.31* && yum clean all #Löschen Sie nicht verwendete Dateien und leeren Sie den Yum-Cache, um den Container so leicht wie möglich zu machen WORKDIR /usr/local/php #Geben Sie den Container ein, der auch der Speicherort des PHP-Programms ist EXPOSE 9000 #Öffnen Sie Port 9000
CMD ["./sbin/php-fpm", "-c", "/usr/local/php/etc/php-fpm.conf"] #Öffnen Sie php -c, um die Hauptkonfigurationsdatei anzugeben. #Kopieren Sie die vorbereitete Datei php.ini und php-5.6.31.tar.gz in das aktuelle Verzeichnis ls
Docker-Datei php-5.6.31.tar.gz php.ini

#Erstellen Sie ein Docker-Image basierend auf PHP Docker Build -t PHP:1.

Erstellen Sie die nginx-php-Netzwerkumgebung und starten Sie den Container

#Erstellen Sie ein Netzwerk namens lnmpdocker network create lnmp
dad428646d8f8278f36b80b3b960493aee8be1960bb1f505bfeebc97022b6385

Docker-Netzwerk ls
NETZWERK-ID-NAME TREIBER-UMFANG
0604a9338e1b Brücke Brücke lokal
b68e9da0b1e6 Host Host lokal
dad428646d8f lnmp Brücke lokal
cf4b2d0b4394 keine null lokal

#Erstellen Sie ein Mount-Verzeichnis für die nginx-php-Webseite mkdir -p /www

#Starten Sie den PHP-Container docker run -dit --name lnmp-php --net lnmp --mount type=bind,src=/www,dst=/usr/local/nginx/html php:1
5b49fc160f9e42364238a937149bbb475036b8a28feddf0fe05c1e70b414a151

#Starten Sie den Nginx-Container docker run -dit --name lnmp-nginx --net lnmp -p 8888:80 --mount type=bind,src=/www,dst=/usr/local/nginx/html nginx:1
7ce4d14cf756859e814186090a12b770916f150ed2a5fab2f0dc6ba8c347aab8

Docker ps -a
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
7ce4d14cf756 nginx:1 "./sbin/nginx -g 'da..." vor 16 Sekunden Vor 15 Sekunden aktiv 0.0.0.0:8888->80/tcp lnmp-nginx
5b49fc160f9e php:1 "./sbin/php-fpm -c /…" vor 6 Minuten Up 6 Minuten 9000/tcp lnmp-php

#Erstellen Sie eine Testseite php.info
echo "<?php phpinfo();?>" > /www/index.php

Zugriffstest über den Browser

Erstellen Sie ein JAVA-Website-Umgebungsbild

#Erstellen Sie ein Speicherverzeichnis für den Build des Java-Images mkdir -p dockerfile/lib/centos/tomcat
cd dockerfile/lib/centos/tomcat

#Kopieren Sie das erforderliche Softwarepaket in das aktuelle Verzeichnis ls
apache-tomcat-8.0.46.tar.gz Docker-Datei jdk-8u45-linux-x64.tar.gz server.xml

#Dockerfile vorbereiten
vim Docker-Datei
VON centos:7      
WARTUNGSARBEITER Woche

ADD jdk-8u45-linux-x64.tar.gz /usr/local #JavaJDK-Umgebung erstellen ENV JAVA_HOME /usr/local/jdk1.8.0_45 #Erzwingen der Generierung einer Umgebungsvariablen ADD apache-tomcat-8.0.46.tar.gz /usr/local #Tomcat entpacken
COPY server.xml /usr/local/apache-tomcat-8.0.46/conf #Konfigurationsdatei kopierenRUN rm -f /usr/local/*.tar.gz #Installationspaket löschen container lightweight WORKDIR /usr/local/apache-tomcat-8.0.46 #Arbeitsverzeichnis Geben Sie das Verzeichnis ein, in dem sich der Container befindet EXPOSE 8080 #Port zuordnen ENTRYPOINT ["./bin/catalina.sh", "run"] #Catalina verwenden. sh run startet Tomcat im Vordergrund

#Erstellen Sie einen Spiegel basierend auf Tomcat docker build -t tomcat:1 .

#Erstellen Sie ein Web-Mount-Verzeichnis mkdir -p /app

#Starten Sie den Tomcat-Containerprozess docker run -dit --name=tomcat -p 8080:8080 --network lnmp --mount type=bind,src=/app/,dst=/usr/local/apache-tomcat-8.0.46/webapps tomcat:1

Docker ps -a
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
15eca19688ca tomcat:1 "./bin/catalina.sh r..." vor 17 Sekunden Aktiv seit 16 Sekunden 0.0.0.0:8080->8080/tcp tomcat
7ce4d14cf756 nginx:1 "./sbin/nginx -g 'da..." vor 2 Stunden Aktiv Vor etwa einer Stunde 0.0.0.0:8888->80/tcp lnmp-nginx
5b49fc160f9e php:1 "./sbin/php-fpm -c /…" vor 2 Stunden Up Ungefähr eine Stunde 9000/tcp lnmp_php

#Erstellen Sie eine Website-Testseite mkdir /app/ROOT
vim /app/ROOT/index.html 
dddddddddddddddd 

Verpackung und Bereitstellung des gesamten Projekts mit einem Klick

Docker Compose-Nutzung

Compose ist ein in Python geschriebenes Tool zum Definieren und Verwalten mehrerer Container. Verwenden Sie Compose-Konfigurationsdateien, um die Architektur mehrerer Containeranwendungen zu beschreiben, z. B. welche Bilder verwendet werden sollen, Datenmengen, Netzwerke, zugeordnete Ports usw. Anschließend verwaltet ein Befehl alle Dienste, z. B. Starten, Stoppen, Neustarten usw.

Installieren

Entpacken Sie docker-compose-linux-x86_64.zip 
Archiv: docker-compose-linux-x86_64.zip
 aufblasen: Docker-Compose     

ich werde docker-compose
-rw-r--r-- 1 root root 8858496 31. August 2017 docker-compose

chmod +x Docker-Compose

mv docker-compose /usr/bin/

YAML-Dateiformat und Vorsichtsmaßnahmen beim Schreiben

YAML ist ein Datenserialisierungsformat mit einer sehr intuitiven Auszeichnungssprache und hoher Lesbarkeit. Ähnlich wie bei der Datenbeschreibungssprache XML ist die Syntax viel einfacher als bei XML

YAML-Datenstrukturen werden durch Einrückungen gekennzeichnet, aufeinanderfolgende Elemente durch Minuszeichen, Schlüssel-Wert-Paare durch Doppelpunkte getrennt, Arrays in eckige Klammern und Hashes in geschweifte Klammern.

Hinweise zum YAML-Dateiformat:

  • Die Einrückung per Tabulatortaste wird nicht unterstützt. Für die Einrückung sind Leerzeichen erforderlich.
  • Normalerweise mit 2 Leerzeichen Einrückung beginnen
  • Rückt nach einem Zeichen (z. B. einem Doppelpunkt, Komma oder Bindestrich) ein Leerzeichen ein.
  • Mit einem Rautezeichen kommentieren
  • Wenn es Sonderzeichen enthält, schließen Sie es in einfache Anführungszeichen ein.
  • Boolesche Werte (true, false, yes, no, on, off) müssen in Anführungszeichen gesetzt werden, damit der Parser sie als Zeichenfolge interpretiert.

Gemeinsame Felder in Konfigurationsdateien

Felder beschreiben
bauen Unterfeld Dockerfile: Gibt den Dockerfile-Dateinamen an
Untergeordneter Feldkontext; Erstellen des Bildkontextpfads
Bild Angeben eines Bilds
Befehl Befehl ausführen, Standardbefehl überschreiben
Containername Angeben eines Containernamens
einsetzen Geben Sie die Konfiguration für die Bereitstellung und den Betrieb von Diensten an. Nur im Swarm-Modus verfügbar
Umfeld Umgebungsvariablen hinzufügen
Netzwerke Treten Sie dem Netzwerk bei und verweisen Sie auf den Eintrag unter den Top-Level-Netzwerken
Häfen Port freigeben, dasselbe wie -p, aber der Port kann nicht niedriger als 60 sein
Bände Mounten Sie einen Hostpfad oder ein benanntes Volume. Wenn es sich um ein benanntes Volume handelt, definieren Sie den Volumenamen in den Top-Level-Volumes
Neustart Neustartrichtlinie, Standard ist „Nein“, „Immer“ | bei Fehler | sofern nicht gestoppt
Hostname

Container-Hostname

Allgemeine Befehle

Felder beschreiben
bauen Erstellen Sie den Dienst neu
ps Container auflisten
hoch Erstellen und Starten eines Containers
Ausführung Ausführen von Befehlen im Container
Skala Geben Sie die Anzahl der zu startenden Servicecontainer an
Spitze Containerprozesse anzeigen
Protokolle Containerausgabe anzeigen
runter Löschen von Containern, Netzwerken, Volumes und Images
Stopp/Start/Neustart Dienste stoppen/starten/neu starten

Bereitstellung der LNMP-Website-Plattform mit nur einem Klick

#Den compose_lnmp-Paketbaum anzeigen /root/compose_lnmp/
/root/compose_lnmp/
├── docker-compose.yml #docker-compose Startschnittstellendatei ├── mysql
│ ├── conf
│ │ └── my.cnf #mysql-Konfigurationsdatei│ └── data #einzubindendes mysql-Datenverzeichnis├── nginx
│ ├── Dockerfile #Konfigurationsdatei des Docker-Images von nginx anpassen│ ├── nginx-1.12.1.tar.gz #Quellcodepaket von nginx│ └── nginx.conf #Konfigurationsdatei von nginx├── php
│ ├── Dockerfile #Docker-Image-Datei von PHP anpassen│ ├── php-5.6.31.tar.gz #PHP-Quellcodepaket│ └── php.ini #PHP-Konfigurationsdatei└── wwwroot #Webseitenverzeichnis└── index.php #Standard-Webseitendatei
vim docker-compose.yml #docker-compose-Startschnittstellendatei muss mit .yml enden. Er und ansbile sind beide in der Python-Version geschrieben: „3“ #Containerversion ist 3
Dienste: #Containerdienste haben das folgende nginx: #Nginx-Container-Hostname: nginx #Container-Hostname ist nginx
  build: #Geben Sie den Speicherort des Dockerfilecontexts an: ./nginx #Die Dockerfile-Datei befindet sich im Nginx-Verzeichnis unter dem aktuellen Pfaddockerfile: Dockerfile #Dockerfile-Dateiname: Dockerfile
  Ports: #Geben Sie den Mapping-Port-Host 81 an, der auf 80 abgebildet werden soll
   - 81:80         
  Netzwerke: #Geben Sie die Container-Netzwerkkarte in der lnmp-Bridge an - lnmp
  Volumes: #Mount ./wwwroot im aktuellen Verzeichnis in das Webverzeichnis des Containers nginx - ./wwwroot:/usr/local/nginx/html

 php: #Ähnlich wie nginx Hostname: php
  bauen:
   Kontext: ./php
   Dockerdatei: Dockerdatei
  Netzwerke:
   -lnmp
  Bände:
   - ./wwwroot:/usr/local/nginx/html

 MySQL:
  Hostname: MySQL
  image: mysql:5.6 #Laden Sie das Image herunter mysql5.6 Versionsports:           
   -3306:3306
  Netzwerke:
   -lnmp
  Volumes: #Mounten Sie die Hauptkonfigurationsdatei und Datendatei von MySQL - ./mysql/conf:/etc/mysql/conf.d
   - ./mysql/data:/var/lib/mysql 
  Befehl: --character-set-server=utf8 #Führen Sie den Befehl aus und überschreiben Sie den Standardbefehl. Umgebung: #Fügen Sie die Umgebungsvariable MYSQL_ROOT_PASSWORD hinzu: 123456
   MYSQL_DATABASE: WordPress
   MYSQL_USER: Benutzer
   MYSQL_PASSWORD: Benutzer123

Netzwerke: #Fügen Sie das Netzwerk lnmp hinzu und verweisen Sie unter den Netzwerken der obersten Ebene auf den Eintrag lnmp:
#Ein-Klick-Bereitstellung von LNMP
docker-compose -f docker-compose.yml up #-f gibt das Docker-Compose im aktuellen Verzeichnis als Startdatei an, up erstellt und startet den Container
#Alle bereitgestellten Containerprozesse mit einem Klick anzeigen docker-compose -f docker-compose.yml ps
    Name Befehl Status Ports     
-------------------------------------------------------------------------------------
composelnmp_mysql_1 docker-entrypoint.sh --cha ... Bis 0.0.0.0:3306->3306/tcp 
composelnmp_nginx_1 ./sbin/nginx -g Daemon aus; Hoch 0.0.0.0:81->80/tcp   
composelnmp_php_1 ./sbin/php-fpm -c /usr/loc ... Bis 9000/tcp    

#Beenden aller bereitgestellten Containerprozesse mit einem Klick docker-compose -f docker-compose.yml stop
Composelnmp_nginx_1 wird gestoppt ... fertig
Composelnmp_php_1 wird gestoppt ... fertig
Stoppen von composelnmp_mysql_1 ... fertig#Starten Sie den Container mit einem Klick und führen Sie docker-compose -f docker-compose.yml start im Hintergrund aus
#Bereinigen Sie alle bereitgestellten Containerprozesse mit einem Klick docker-compose -f docker-compose.yml down

Ein-Klick-Bereitstellung der Nginx Reverse Proxy Tomcat Cluster-Praxis

#Sehen Sie sich das compose_nginx_tomcat-Paket an [root@docker ~]# tree compose_nginx_tomcat/
verfassen_nginx_tomcat/
├── docker-compose.yml
├── MySQL
│ ├── conf
│ │ └── my.cnf #mysql-Konfigurationsdatei│ └── data #einzubindendes mysql-Datenverzeichnis├── nginx
│ ├── Dockerfile #Benutzerdefinierte Image-Konfigurationsdatei│ ├── nginx-1.12.1.tar.gz #Quellpaket│ └── nginx.conf #nginx-Konfigurationsdatei├── tomcat
│ ├── apache-tomcat-8.0.46.tar.gz #Quellcode-Paket│ ├── Dockerfile #Benutzerdefinierte Image-Konfigurationsdatei│ └── server.xml #Tomcat-Konfigurationsdatei└── Webapps     
  └── WURZEL
    └── index.html #Testdatei für die Webseite
#Sehen Sie sich die Startschnittstellendatei von Docker-Compose an cat compose_nginx_tomcat/docker-compose.yml 
Version: '3'
Leistungen:
 nginx:
  Hostname: nginx
  bauen:
   Kontext: ./nginx
   Dockerdatei: Dockerdatei
  Häfen:
   - 82:80
  Netzwerke:
   -lnmt
  Bände:
   - ./webapps:/opt/webapps
 tomcat01:
  Hostname: tomcat01
  Erstellen: ./tomcat
  Netzwerke:
   -lnmt
  Bände:
   – /usr/local/jdk1.8.0_45:/usr/local/jdk1.8.0_45
   - ./webapps:/usr/local/apache-tomcat-8.0.46/webapps
 tomcat02:
  Hostname: tomcat02
  Erstellen: ./tomcat
  Netzwerke:
   -lnmt
  Bände:
   - /usr/local/jdk1.8.0_45:/usr/local/jdk1.8.0_45 #Die Java-Umgebung des Docker-Hosts ist gemountet!
   - ./webapps:/usr/local/apache-tomcat-8.0.46/webapps #Mounten Sie das Webverzeichnis mysql:
  Hostname: MySQL
  Bild:mysql:5.6
  Häfen:
   - 3307:3306
  Netzwerke:
   -lnmt
  Bände:
   - ./mysql/conf:/etc/mysql/conf.d
   - ./mysql/data:/var/lib/mysql
  Umfeld:
   MYSQL_ROOT_PASSWORD: 123456
   MYSQL_DATABASE: db
   MYSQL_USER: Benutzer
   MYSQL_PASSWORD: Benutzer123
Netzwerke:
 lnmt:

Durch die Installation einer JAVA-Umgebung in jedem Container wird der Container zu groß. Hängen Sie daher die lokale Java-Umgebung in den Tomcat-Container, um Platz zu sparen

#Da der Tomcat-Containerprozess die lokale Java-Umgebung des Docker-Hosts mounten muss, #installieren Sie also jdk-8u45-linux-x64.tar.gz lokal auf dem Docker-Host
tar xf jdk-8u45-linux-x64.tar.gz -C /usr/local

#Bereitstellung des Ngxin+Tomcat-Reverse-Proxy-Clusters mit einem Klick docker-compose -f docker-compose.yml up
Nginx-Reverse-Proxy-Konfigurationsdatei, Benutzer-Root; 
Arbeiterprozesse automatisch; 

error_log Protokolle/error.log Informationen;

pid-Protokolle/nginx.pid; 


Ereignisse {
  verwenden Sie epoll; 
}

http {

  mime.types einschließen;
  Standardtyp Anwendung/Oktett-Stream;

  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
           '$status $body_bytes_sent "$http_referer" '
           '"$http_user_agent" "$http_x_forwarded_for"';

  access_log Protokolle/access.log Haupt;
  sendfile an;
  KeepAlive-Timeout 65;
  
  upstream www.example.com {
    #ip_hash;
    Server Tomcat01:8080; #Der in der Compose-Schnittstellendatei definierte Hostname kann direkt in IP aufgelöst werden
    Server tomcat02:8080;
  }

  Server {
    hören Sie 80;
    Servername localhost;
  
  Standort / {
    Proxy-Passwort http://www.example.com;
  }

    Standort ~ \.(html|css|js|jpg|png|gif)$ {
      Wurzel /opt/webapps/ROOT;
    }
  }
}

Dies ist das Ende dieses Artikels über die Docker-Image-Produktion und das Ein-Klick-Verpacken und Bereitstellen des gesamten Projekts. Weitere relevante Inhalte zur Docker-Image-Produktion und zum Verpacken und Bereitstellen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • So erstellen Sie ein Apache-Image mit Dockerfile
  • So erstellen Sie Ihr eigenes Docker-Image und laden es auf Dockerhub hoch
  • Docker-Image erstellen Dockerfile und Commit-Operationen
  • So führen Sie Hadoop aus und erstellen Images in Docker
  • Dockerfile zum Erstellen des offiziellen Tomcat-Images und detaillierte Erklärung zur Image-Verwendung
  • Detaillierte Erklärung zur Erstellung verschiedener Docker-Images
  • Detaillierte Einführung in die Docker-Image-Erstellung

<<:  Die entsprechenden Attribute und Verwendung von XHTML-Tags in CSS

>>:  calc(), um einen Vollbild-Hintergrundinhalt mit fester Breite zu erreichen

Artikel empfehlen

Einführung in die Verwendung von CSS3-Farbwerten (RGBA) und Farbverlaufsfarben

Vor CSS3 konnten Verlaufsbilder nur als Hintergru...

MySQL-Lösung für zeitgesteuerte Backups (mithilfe von Linux crontab)

Vorwort Obwohl manche Liebe auf dieser Welt ihren...

So deinstallieren Sie Docker Toolbox vollständig

Docker Toolbox ist eine Lösung zur Installation v...

Detaillierte Erklärung der reinen SQL-Anweisungsmethode basierend auf JPQL

JPQL steht für Java Persistence Query Language. B...

Implementierung eines schwebenden Werbestreifens in HTML und CSS

1.html Teil Code kopieren Der Code lautet wie folg...

Zusammenfassung der MySQL-Anweisungen

Inhaltsverzeichnis 1. Datenbank USE auswählen 2. ...

Kommentare auf Webseiten verursachen Textüberlauf im Internet Explorer

Der experimentelle Code lautet wie folgt: </hea...

HTML-Code, der den Internet Explorer zum Einfrieren bringen kann

Wir müssen lediglich einen beliebigen Texteditor ö...