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

Tutorial zur Samba-Konfiguration für die Dateifreigabe im Linux-System

Inhaltsverzeichnis Deinstallieren und installiere...

Vue-Direktiven v-html und v-text

Inhaltsverzeichnis 1. Anweisungen zum Rendern von...

Vue implementiert die Lupenfunktion der Produktdetailseite

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

Beispielcode für den dynamischen CSS-Ladebalkeneffekt

Mit dem Wissen über CSS-Variablen werde ich den C...

Detaillierte Schritte zur Installation und Konfiguration von MySQL 5.7

1. MySQL herunterladen 1. Melden Sie sich auf der...

Ausführliche Erläuterung der Stilfunktion in Vue3-Einzeldateikomponenten

Inhaltsverzeichnis Stil mit Gültigkeitsbereich St...

Eine kurze Erläuterung der Rolle und Funktionsweise von Schlüsseln in Vue3

Welche Funktion hat dieses Schlüsselattribut? Sch...

Vue-Beispielcode mit dem Animationseffekt „Übergangskomponente“

Die Übergangsdokumentadresse definiert eine Hinte...

So bereinigen Sie regelmäßig private Docker-Server-Images

Die Verwendung von CI zum Erstellen von Docker-Im...