Analyse des Docker-Compose-Image-Release-Prozesses des Springboot-Projekts

Analyse des Docker-Compose-Image-Release-Prozesses des Springboot-Projekts

Einführung

Das Docker-Compose-Projekt ist ein offizielles Open-Source-Projekt von Docker und verantwortlich für die schnelle Orchestrierung von Docker-Container-Clustern. Mit Compose können Benutzer eine Gruppe verwandter Anwendungscontainer über eine einzelne Vorlagendatei docker-compose.yml (YAML-Format) als Projekt definieren. Das Docker-Compose-Projekt ist in Python geschrieben und ruft die vom Docker-Dienst bereitgestellte API auf, um Container zu verwalten. Sofern die Betriebsplattform die Docker-API unterstützt, kann Compose darauf zur Orchestrierungsverwaltung verwendet werden.

Docker-Compose unterteilt die verwalteten Container in drei Ebenen: Projekt, Dienst und Container. Alle Dateien im Docker-Compose-Laufverzeichnis (docker-compose.yml, Erweiterungsdateien oder Umgebungsvariablendateien usw.) bilden ein Projekt. Wenn kein spezieller Projektname angegeben ist, wird der aktuelle Verzeichnisname verwendet. Ein Projekt kann mehrere Dienste enthalten und jeder Dienst definiert das Image, die Parameter und die Abhängigkeiten des ausgeführten Containers. Ein Dienst kann mehrere Containerinstanzen umfassen. Docker-Compose löst das Problem des Lastausgleichs nicht, daher sind andere Tools erforderlich, um die Diensterkennung und den Lastausgleich zu erreichen.

Die Standardprojektkonfigurationsdatei von Docker-Compose ist docker-compose.yml. Sie können die Konfigurationsdatei über die Umgebungsvariable COMPOSE_FILE oder den Parameter -f anpassen. Sie definiert mehrere abhängige Dienste und die Container, die jeden Dienst ausführen.
Durch die Verwendung einer Dockerfile-Vorlagendatei können Benutzer problemlos einen separaten Anwendungscontainer definieren. Bei der Arbeit stoßen wir häufig auf Situationen, in denen mehrere Container zusammenarbeiten müssen, um eine Aufgabe zu erledigen. Um beispielsweise ein Webprojekt zu implementieren, ist es häufig erforderlich, zusätzlich zum Webdienstcontainer selbst einen Back-End-Datenbankdienstcontainer und sogar einen Lastausgleichscontainer hinzuzufügen.

Allgemeine Befehle

Docker-Compose

einführen

Die Rolle von Compose besteht darin, „Anwendungen in mehreren Docker-Containern zu definieren und auszuführen.“ Mit Compose können Sie die Dienste Ihrer Anwendung in einer Konfigurationsdatei (YAML-Format) konfigurieren und dann mit einem einzigen Befehl alle in der Konfiguration referenzierten Dienste erstellen und starten.
In Compose gibt es zwei wichtige Konzepte:
• Service: Ein Container für eine Anwendung kann tatsächlich mehrere Containerinstanzen enthalten, auf denen dasselbe Image ausgeführt wird.
• Projekt: Eine vollständige Geschäftseinheit, die aus einer Reihe zugehöriger Anwendungscontainer besteht, die in der Datei docker-compose.yml definiert sind.

Installation von Docker Compose

Es gibt viele Möglichkeiten, Compose zu installieren. In diesem Artikel wird die Installation über die Shell erläutert. Wenn Sie an anderen Installationsmethoden interessiert sind,
Sie können die offizielle Docker-Dokumentation einsehen: https://docs.docker.com/compose/install/

Installationsschritte für Docker Compose

Laden Sie es über den GitHub-Link herunter und installieren Sie es. Nicht-ROOT-Benutzer müssen sudo hinzufügen.

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Erteilen Sie der binären Download-Datei Ausführungsberechtigungen

sudo chmod +x /usr/local/bin/docker-compose

Überprüfen der Installation

docker-compose --version

Deinstallieren Wenn es als Binärpaket installiert ist, löschen Sie einfach die Binärdatei

rm /usr/local/bin/docker-compose

Verzeichnisstruktur

komponieren
	docker-compose.yml
	Eureka
		Docker-Datei
		eureka-server-2.0.2.RELEASE.jar
	Benutzer
		Docker-Datei
		Benutzer-2.0.2.RELEASE.jar
	Leistung
		Docker-Datei
		power-2.0.2.RELEASE.jar

Beispiel

Compose ist sehr einfach zu verwenden. Sie müssen nur eine docker-compose.yml-Datei schreiben und dann den Befehl docker-compose verwenden. docker-compose.yml beschreibt die Konfiguration des Containers, während der Befehl docker-compose den Betrieb des Containers beschreibt.
1. Nehmen wir als einfaches Beispiel ein Microservice-Projekt. Erstellen Sie zunächst ein Compose-Arbeitsverzeichnis, erstellen Sie dann einen JenkinsTest-Ordner, legen Sie das ausführbare JAR-Paket ab und schreiben Sie eine Dockerfile-Datei. Die Verzeichnisstruktur ist wie folgt:
Jenkins speichert die hochgeladenen JAR-Pakete für eigene Tests

Bildbeschreibung hier einfügen

docker-compose.yml

version: '3.1' #Hier müssen Sie die Docker-Version angeben, die den Docker-Compose-Diensten entspricht:
  jenkinstest: #Geben Sie den Dienstnamen an#image: jenkinstest #Geben Sie den Bildnamen in Kleinbuchstaben an, andernfalls wird ein Fehler gemeldetbuild: ./jenkinsTest #Geben Sie den Pfad an, in dem sich die Dock-Datei befindetports:
      - 8099:8099 #Port-Mapping-Exposition angeben:
      - 8099 #Freiliegender Service-Port

Docker-Datei

VON adoptopenjdk/openjdk8:jdk8u-centos-nightly

#AutorMAINTAINER lkz

# Der Port, der vom Image freigegeben werden soll. Wenn Sie den Port verwenden möchten, verwenden Sie -p, damit er wirksam wird, wenn Sie den Docker-Run-Befehl EXPOSE 8099 ausführen.
 
KOPIEREN jenkinsTest.jar 11.jar 
# Befehl, der ausgeführt wird, nachdem das Image als Container ausgeführt wurde ENTRYPOINT ["java","-jar","11.jar"]

Um den Microservice zu starten, können Sie den Parameter -d hinzufügen, um ihn im Hintergrund zu starten

docker-compose up -d 

Bildbeschreibung hier einfügen

SpringCloud-Mikroservices mit Docker Compose orchestrieren

Ändern Sie die Datei docker-compose.yml wie oben beschrieben.

Version: '3.3'
Leistungen:
  Heureka:
    image: eureka:v1 #Geben Sie den Image-Namen an build: ./eureka #Geben Sie den Pfad an, in dem sich das Dockfile befindet ports:
     8080: 8080
  Benutzer:
    Bild: Benutzer:v1
    build: ./user #Geben Sie den Pfad an, in dem sich Dockfile befindet. Ports:
     -8081:8081
  Leistung:
    Bild: power:v1
    build: ./power #Geben Sie den Pfad an, in dem sich Dockfile befindet ports:
     -8082:8082

Dies ist das Ende dieses Artikels über die Prozessanalyse des Docker-Compose-Image-Publishing-Springboot-Projekts. Weitere relevante Inhalte zum Docker-Compose-Publishing-Springboot-Projekt finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • So veröffentlichen Sie Docker-Images im Docker Hub
  • So konfigurieren Sie Docker in IDEA2021.2, um das Springboot-Projekt abzubilden und mit einem Klick freizugeben
  • So veröffentlichen Sie ein lokal erstelltes Docker-Image auf Dockerhub
  • Detaillierte Schritte zum Erstellen, Ausführen, Veröffentlichen und erstmaligen Abrufen eines Docker-Images
  • So verwenden Sie Docker zum Veröffentlichen lokaler Bilder in der Alibaba Cloud

<<:  DHTML-Objekte (gemeinsame Eigenschaften verschiedener HTML-Objekte)

>>:  Implementierung der MySQL-Datendesensibilisierung (Telefonnummer, ID-Karte)

Artikel empfehlen

So fragen Sie ab, ob die MySQL-Tabelle gesperrt ist

Spezifische Methode: (Empfohlenes Tutorial: Lern-...

PHP-bezogene Pfade und Änderungsmethoden in der Ubuntu-Umgebung

PHP-bezogene Pfade in der Ubuntu-Umgebung PHP-Pfa...

Detaillierte Erklärung der Rolle des neuen Operators in Js

Vorwort Js ist heutzutage die am häufigsten verwe...

Zusammenfassung häufig verwendeter SQL-Operationen in MySQL-Tabellen

1. Sehen Sie sich die Feldtypen in der Tabelle an...

Ändern Sie die MySQL-Datenbank-Engine in InnoDB

PS: Ich verwende hier PHPStudy2016 1. Stoppen Sie...

Docker-Bereinigungsumgebungsvorgang

Beginnen Sie vorsichtig mit der Reinigung! Auflis...

So lösen Sie das Problem, dass Tomcat9.exe abstürzt

Ein Leser kontaktierte mich und fragte, warum es ...

Eine einfache und eingehende Studie zu Async und Await in JavaScript

Inhaltsverzeichnis 1. Einleitung 2. Detaillierte ...

Serviceverwaltung der Quellpaketinstallation unter Linux

Inhaltsverzeichnis 1. Startverwaltung des Quellpa...

So implementieren Sie verteilte Transaktionen in MySQL XA

Inhaltsverzeichnis Vorwort XA-Protokoll So implem...

Über die 4 Zusatzfunktionen von Vuex

Inhaltsverzeichnis 1. Zusatzfunktionen 2. Beispie...

Detaillierte Erklärung der Rolle des Schlüssels in React

Inhaltsverzeichnis Frage: Wird die Farbe des Bere...

Die Vollversion des gängigen Linux-Tools vi/vim

Warum Vim lernen? Linux verfügt über eine große A...