Detaillierte Erläuterung des neuesten IDEA-Prozesses zum schnellen Bereitstellen und Ausführen von Docker-Images

Detaillierte Erläuterung des neuesten IDEA-Prozesses zum schnellen Bereitstellen und Ausführen von Docker-Images

Hintergrund

Verwenden Sie Idea mit Docker, um den gesamten Prozess von der Javaweb-Entwicklung über die Bereitstellung bis hin zum Betrieb zu realisieren.
Umgebung: Docker konfiguriert, MySQL8-Container installiert, ein SpringBoot-Framework-Webprojekt (mit Swagger für einfache Tests)

Öffnen Sie die Docker-Remoteverbindung

Die Onlinemethode kann die entsprechende Docker.service-Datei nicht finden. Möglicherweise ist die Version oder die Installationsmethode anders.
Suchen Sie den Speicherort der Datei docker.service über systemctl status docker:

Bildbeschreibung hier einfügen

Ändern Sie die Datei /etc/systemd/system/docker.service:

#ExecStart=/usr/bin/dockerd
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

Starten Sie den Docker-Dienst neu:

systemctl daemon-reload 
systemctl Neustart docker.service

Port 2375 ist geöffnet:

Firewall-Befehl --zone=public --add-port=2375/tcp --permanent
Firewall-Befehl --reload

Überprüfen Sie nach dem Neustart, ob Port 2375 erreichbar ist:
http://192.168.137.188:2375/info

Bildbeschreibung hier einfügen

Hinweis: Dies zeigt den Erfolg an.

Idee Docker-Plugin-Konfiguration

Idea 2019 Version 3 hat einen integrierten Docker. Wenn er nicht integriert ist, installieren Sie ihn bitte selbst.

Bildbeschreibung hier einfügen

Hinweis: Docker – Geben Sie nach dem Klicken auf „+“ den Verbindungsnamen und die IP des Linux-Hosts ein: externer Docker-Port

Verbinden Sie Idea mit Docker und machen Sie sich mit den verfügbaren Vorgängen auf der entsprechenden Schnittstelle vertraut:

Bildbeschreibung hier einfügen

Hinweis: Es integriert allgemeine Befehle, einschließlich Container und grundlegender Bilder. Sie können deren spezifische Verwendung selbst erlernen, was nicht schwierig ist.

Dockerfile zur SpringBoot-Anwendung hinzufügen

Bildbeschreibung hier einfügen

Hinweis: Dasselbe Verzeichnis wie die POM-Datei. Der Dateiinhalt lautet wie folgt:

VON openjdk:8u212-jre
WARTUNGSPERSÖNLICH aliyu<[email protected]>

KOPIEREN Sie target/myframe-0.0.1-SNAPSHOT.jar /myframe-0.0.1-SNAPSHOT.jar
EINSTIEGSPUNKT ["java", "-jar", "/myframe-0.0.1-SNAPSHOT.jar"]

Docker-Run-Konfiguration hinzufügen

Bildbeschreibung hier einfügen

Hinweis: 1. Klicken Sie mit der rechten Maustaste auf „Konfiguration bearbeiten“
2. Klicken Sie auf "+" und wählen Sie Docker
3. Wählen Sie die zuvor definierte Docker-Verbindung aus
4. Name des Dockerfiles
5. Verzeichnisspeicherort der Docker-Datei
6. Projektabbild und Versionsdefinition
7. Aktivieren Sie „Image erstellen“ und benennen Sie den Container, damit Sie den Container nach dem Erstellen des Images erstellen und ausführen können.
8. Konfigurieren Sie die Portzuordnung zwischen Host und Container
9. Konfigurieren Sie eine feste IP für den Container, um das Problem zu vermeiden, dass ähnliche Projekte aufgrund einer zufälligen IP keine Dienste finden können. Informationen zur festen IP-Konfiguration finden Sie unter: http://blog.java1234.com/blog/articles/628.html
PS: Die Standard-IP-Adresse des MySQL8-Containers wurde so konfiguriert, dass sie sich im selben Netzwerksegment befindet wie die IP-Adresse hier.
10. Sie können den Befehl hier in der Vorschau anzeigen, um ihn auf Fehler zu überprüfen.
11. Bevor Sie Docker Run konfigurieren und ausführen, müssen Sie das gepackte Projekt neu kompilieren:

Paket bereinigen -U -DskipTest -P Test

Hinweis: Während der Entwicklung greift der Host auf den MySQL-Container in Linux zu, und wenn die Anwendung als Container-Laufzeit generiert wird, greift der Anwendungscontainer auf den MySQL-Container zu. Die MySQL-Konfiguration in YML ist inkonsistent, daher wird die Test-YML-Konfigurationsdatei speziell für die Docker-Bereitstellung verwendet. ps: Damit Container aufeinander zugreifen können, überprüfen Sie bitte den Titel „Andere – Kommunikation zwischen Containern“. Nachdem er erstellt wurde, können Sie Folgendes sehen:

Bildbeschreibung hier einfügen

Hinweis: Es muss noch eine weitere Docker-Datei gestartet werden

Führen Sie die Docker-Startkonfiguration aus

Klicken:

Bildbeschreibung hier einfügen

Hinweis: Sie können den vollständigen Prozess der sauberen Maven-Verpackung sowie den Prozess der Docker-Image-Erstellung und des Erstellens und Startens von Containern sehen. Sie können sogar die Protokolle des Container-Startup-Projekts sehen

Testzugang zur Swagger Homepage:

Bildbeschreibung hier einfügen

andere

Kommunikation zwischen Containern

Hintergrund: Da ich nicht verstehe, wie Container miteinander kommunizieren, ist beim Konfigurieren einer MySQL-Verbindung die URL immer falsch und es werden immer Probleme mit der Datenbankverbindung gemeldet.

Die Host-IP und der zugeordnete Port können auf den MySQL8-Container zugreifen:
URL: jdbc:mysql://192.168.137.188:3307/db_myframe?serverTimezone=GMT

Der Zugriff auf den MyFrame-Container über die Host-IP und den zugeordneten Port schlägt jedoch fehl, da die Kommunikation zwischen den Containern unterschiedlich ist

Der Zugriff ist nicht über localhost:3306 möglich. Der localhost im Docker-Container verweist nicht auf den localhost des Hostcomputers.

Docker erstellt zur Laufzeit eine virtuelle Netzwerkkarte und nennt sie docker0
Verwenden Sie docker inspect mysql8, um die IP-Adresse 172.17.0.2 zu finden. Beachten Sie jedoch, dass beim Zugriff auf Container der Port der Port im Container sein muss und nicht der Port, der auf dem Host 3307 zugeordnet ist.

Dies ist das Ende dieses Artikels über die neueste IDEA zur schnellen Implementierung der Bereitstellung und des Betriebs von Docker-Images. Weitere verwandte Inhalte zur Bereitstellung und zum Betrieb von IDEA-Docker-Images 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 konfigurieren Sie Docker in IDEA2021.2, um das Springboot-Projekt abzubilden und mit einem Klick freizugeben
  • Die Idee kombiniert Docker, um Image-Paketierung und Bereitstellung mit einem Klick zu realisieren
  • Schnelle Implementierung der Schritte zur Bereitstellung von Docker-Images in Intellij IDEA

<<:  So prüfen Sie, ob eine Tabelle in MySQL vorhanden ist, und löschen sie dann stapelweise

>>:  SQL implementiert Additions-, Subtraktions-, Multiplikations- und Divisionsoperationen auf zwei benachbarten Datenzeilen

Artikel empfehlen

Der vollständige Implementierungsprozess von Sudoku mit JavaScript

Inhaltsverzeichnis Vorwort So lösen Sie Sudoku Fü...

Beitrag zur Übermittlung von HTML-Daten_PowerNode Java Academy

Zu den vom HTTP/1.1-Protokoll angegebenen HTTP-An...

So migrieren Sie den MySQL-Speicherort auf eine neue Festplatte

1. Bereiten Sie eine neue Festplatte vor und form...

Detaillierte Erläuterung der Verwendung des DockerHub-Image-Repository

Bisher wurden die von uns verwendeten Images alle...

CSS3 Milchglaseffekt

Wenn der Milchglaseffekt gut gelingt, kann er die...

Eine kurze Analyse des Unterschieds zwischen ref und toRef in Vue3

1. ref wird kopiert, die Ansicht wird aktualisier...

Das Konzept und die Eigenschaften von benutzerdefinierten MySQL-Variablen

Ein MySQL Custom Value ist ein temporärer Contain...

So verhindern Sie, dass Benutzer Webseiteninhalte mit reinem CSS kopieren

Vorwort Als ich mein eigenes persönliches Blog sc...