So stellen Sie ein SpringCloud-Projekt mit Docker bereit

So stellen Sie ein SpringCloud-Projekt mit Docker bereit

Docker-Image herunterladen

1. Laden Sie nacos herunter

Docker Pull Nacos: [Versionsnummer]

2. MySQL herunterladen

Docker Pull MySQL: [Versionsnummer]

3. Installieren Sie Docker-Compose

Unter Linux müssen Sie es mit dem folgenden Befehl herunterladen:

# Installieren Sie curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

Wenn die Download-Geschwindigkeit langsam ist oder der Download fehlschlägt, können Sie die bereitgestellte Docker-Compose-Datei verwenden: docker-compose-Linux_jb51.rar

Laden Sie es in /usr/local/bin/ hoch und ändern Sie die Dateiberechtigungen:

# Berechtigungen ändern chmod +x /usr/local/bin/docker-compose

Grundlegende Befehle zur automatischen Vervollständigung:

# Befehl abschließen curl -L https://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

Wenn hier ein Fehler auftritt, müssen Sie Ihre Hosts-Datei ändern:

echo "199.232.68.133 raw.githubusercontent.com" >> /etc/hosts

Zugriff verweigert

Dauerhaft geschlossen:

vim /etc/sysconfig/selinux
SELINUX=enforcing geändert in SELINUX=disabled

Starten Sie die VM neu

Starten Sie MySQL und Nacos

1. Starten Sie mysql:

MySQL-spezifische Konfiguration

2. Starten Sie nacos:

docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server:1.4.1

3. Starten Sie Nacos und Firewall neu:

docker restart nacos //Nacos neu starten
systemctl restart firewalld.service //Starten Sie die Firewall neu

4. Ändern Sie die Konfiguration

Standardmäßig erteilt Linux dem von Docker-Compose bereitgestellten Datenvolumen keine Lese- und Schreibberechtigungen. Sie müssen Selinux deaktivieren, damit das MySQL-Datenvolumen erfolgreich bereitgestellt werden kann.

vim /etc/sysconfig/selinux
SELINUX=enforcing geändert in SELINUX=disabled
Starten Sie die VM neu

Ändern Sie Ihr eigenes Java-Projekt

1. Sehen Sie sich die Nacos-Adresse an:

Zeigen Sie die IP-Adresse des Containers über docker inspect , ändern Sie Ihr eigenes SpringCloud-Projekt und ändern Sie die Nacos-Adresse des Unterprojekts in die IP-Adresse des Containers.

Ändern Sie die Verbindungsadresse von MySQL. Ändern Sie die Konfigurationsdatei mit den Untermodulen für Nacos- und MySQL-Adressen: bootstrap.yml

Bildbeschreibung hier einfügen

Wenn Sie MySQL 8.8.15 verwenden, gibt es viele Änderungen.

Datenquelle:
 URL: jdbc:mysql://192.168.88.130:3306/tb_user?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false&allowMultiQueries=true&allowPublicKeyRetrieval=true
 Benutzername: root
 Passwort: 123456
 Treiberklassenname: com.mysql.cj.jdbc.Driver //Wenn Sie MySQL 5.x verwenden, fügen Sie cj nicht hinzu.

Pack

Verwenden Sie das Maven-Verpackungstool, um jeden Microservice im Projekt in app.jar zu packen

Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen

Linux-System hochladen

Kopieren Sie die gepackte app.jar in jedes entsprechende Unterverzeichnis in cloud-demo1
Die Verzeichnisstruktur von cloud-demo1: Erstellen Sie für jedes Modul einen separaten Ordner

Bildbeschreibung hier einfügen

Inhalt der Datei docker-compose.yml : Konfigurieren Sie sie entsprechend Ihren Anforderungen

Bildbeschreibung hier einfügen

Weitere Module:

Bildbeschreibung hier einfügen

Linux hochladen

Bildbeschreibung hier einfügen

Start-up

Geben Sie cloud-demo1 ein: Start

docker-compose up -d //Docker-Protokolle starten -f xxx //Protokolle anzeigen

Einige aufgetretene Probleme:

Verpackung fehlgeschlagen:

Löschen Sie den Build des übergeordneten Projekts:

    <!--<bauen>
        <Plugins>
            <Plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>Spring-Boot-Maven-Plugin</artifactId>
            </plugin>
        </plugins>
    </bauen>
-->

Die Version ist zu hoch

[root@localhost cloud-demo1]# docker-compose up -d
Gebäudetypservice
unbekanntes Flag: --iidfile
Siehe „Docker Build --Help“.
FEHLER: Dienst „typeservice“ konnte nicht erstellt werden: Erstellung fehlgeschlagen

Bildbeschreibung hier einfügen

Andere Fehler

Beim Anzeigen des Microservice-Fehlers failed to req API:/nacos/v1/ns/instance after all servers([127.0.0.1:8848]) tried:

Lösung: Starten Sie zuerst nacos neu und starten Sie dann die Firewall systemctl restart firewalld.service .

permission denied

Ursachenanalyse: Linux verbietet Docker-Compose standardmäßig das Mounten von Datenvolumes, daher müssen Berechtigungen erteilt werden

Lösung: Modifizieren Sie die Datei vim /etc/sysconfig/selinux , ändern Sie SELINUX=enforcing 改為SELINUX=disabled und starten Sie die virtuelle Maschine neu.

Dies ist das Ende dieses Artikels zum Bereitstellen eines Springcloud-Projekts mit Docker mit nur einem Klick. Weitere Informationen zum Bereitstellen von Springcloud mit Docker finden Sie in früheren Artikeln auf 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:
  • Detaillierte Schritte zur Verwendung von Jib für die Docker-Bereitstellung in Spring Cloud

<<:  Vue3 basierend auf der Skript-Setup-Syntax $refs-Verwendung

>>:  11 allgemeine CSS Tipps und Erfahrungssammlung

Artikel empfehlen

So installieren Sie die IonCube-Erweiterung mit Pagoda

1. Installieren Sie zuerst die Pagode Installatio...

Einführung in JavaScript-Array-Deduplizierungs- und -Flatteningfunktionen

Inhaltsverzeichnis 1. Array-Abflachung (auch als ...

Detaillierte Erläuterung des Vuex-Gesamtfalls

Inhaltsverzeichnis 1. Einleitung 2. Vorteile 3. N...

So konfigurieren Sie mehrere Tomcats mit Nginx-Lastausgleich unter Linux

Die Methoden zur Installation von Nginx und mehre...

Grundlegende Hinweise zu HTML (empfohlen)

1. Grundstruktur der Webseite: XML/HTML-CodeInhal...

Detaillierte Analyse von MySQL-Deadlock-Problemen

Vorwort Wenn sich unser Geschäft in einem sehr fr...

JavaScript zur einfachen Verknüpfung von Provinzen und Gemeinden

In diesem Artikel wird der spezifische Code für J...

Die Tücken der automatischen Inkrementierung numerischer MySQL-Typen

Beim Entwurf von Tabellenstrukturen gehören numer...

Zusammenfassung der Anwendungsbereiche von Kubernetes

Kubernetes ist aufgrund seiner Anwendungsportabil...

Wie erreicht MySQL eine Master-Slave-Synchronisierung?

Die Master-Slave-Synchronisierung, auch Master-Sl...

Detaillierte Erklärung des Unterschieds zwischen tinyint und int in MySQL

Frage: Was ist der Unterschied zwischen int(1) un...

Web-Theorie: Bringen Sie mich nicht zum Nachdenken über Lesehinweise

Kapitel 1 <br />Das wichtigste Prinzip, um ...