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

Tutorial zum Zurücksetzen des Root-Passworts von Mac MySQL

Haftungsausschluss: Mit dieser Methode zum Zurück...

Vue verwendet Regeln zur Implementierung der Formularfeldvalidierung

Es gibt viele Möglichkeiten, Formularfelder in Vu...

Integrationspraxis des Vue+Element-Hintergrundverwaltungsframeworks

Inhaltsverzeichnis Vue+ElementUI-Hintergrundverwa...

Einführung in die grafischen Kompositions- und Satzfunktionen des Webdesigns

Alles braucht ein Fundament. Um ein Haus zu bauen...

Docker-Speicherüberwachung und Stresstestmethoden

Der ausgeführte Docker-Container zeigt, dass der ...

So bereinigen Sie den von Docker belegten Speicherplatz

Docker nimmt viel Platz ein. Immer wenn wir Conta...

Vue implementiert kleine Suchfunktion

In diesem Artikelbeispiel wird der spezifische Co...

Vue + OpenLayers Schnellstart-Tutorial

Openlayers ist ein modulares, leistungsstarkes un...

Eine kurze Diskussion über Tags in HTML

0. Was ist ein Tag? XML/HTML-CodeInhalt in die Zw...

js Canvas zur Realisierung des Gobang-Spiels

In diesem Artikel wird der spezifische Code der L...

Detaillierte Erläuterung der Wissenspunkte zu Linux Netfilter/Iptables

Netzfilter Netfilter ist ein Paketverarbeitungsmo...

Sprechen Sie kurz über MySQL Left Join Inner Join

Vorwort Ich war kürzlich damit beschäftigt, ein K...