Dieser Fall basiert auf dem CentOS 7-System
1. Docker-Teil 1.1 Einführung in Docker Docker ist eine Open-Source-Anwendungscontainer-Engine, die es Entwicklern ermöglicht, ihre Anwendungen und Abhängigkeiten in einen portablen Container zu packen und diese dann auf allen gängigen Linux-Rechnern zu veröffentlichen. Auch eine Virtualisierung ist möglich. Die Container werden vollständig in einer Sandbox ausgeführt und es gibt keine Schnittstellen zwischen ihnen. 1.2、Docker-Architektur Einfach ausgedrückt ist Docker ein leichtgewichtiges Linux-System. Docker-Container werden aus Docker-Images erstellt. Die Beziehung zwischen Containern und Bildern ähnelt der zwischen Objekten und Klassen in der objektorientierten Programmierung. Die Docker-Architektur ist in der Abbildung dargestellt: 1.3. Docker-Verwaltungsbefehle für virtuelle Maschinen 1.4. Docker installieren Softwarebibliothek aktualisieren yum aktualisieren -y Docker installieren yum installiere Docker -y 1.5. Starten Sie den Docker-Dienst Starten Sie den Docker-Dienst Dienst Docker starten Andere verwandte Befehle service docker restart // Den Docker-Dienst neu starten service docker stop // Den Docker-Dienst stoppen 2. Knotenteil Sie können das Koa-Framework verwenden, um ein „Hallo-Welt“-Projekt zu schreiben und dann eine neue Dockerfile-Datei im Stammverzeichnis des Projekts zu erstellen. Dockerfile ist eine Textdatei, die Anweisungen enthält. Jede Anweisung erstellt eine Ebene, sodass der Inhalt jeder Anweisung beschreibt, wie die Ebene erstellt werden soll. Die Konfigurationsinformationen meiner eigenen Docker-Datei lauten wie folgt. Personen, die mit Docker vertraut sind, können sie selbst konfigurieren. # Docker-Datei # Knoten als Spiegel vom Knoten verwenden # Erstellen Sie das Verzeichnis im Container RUN mkdir -p /home/project # Legen Sie das Arbeitsverzeichnis des Containers auf dieses Verzeichnis fest WORKDIR /home/project # Port 3000 für die Außenwelt bereitstellen EXPOSE 3000 # Befehl, der ausgeführt wird, nachdem der Container erstellt wurde CMD npm install --registry=https://registry.npm.taobao.org && node ./start.js Veröffentlichen Sie das Projekt auf GitHub, um es für die nachfolgende Jenkins-Bereitstellung vorzubereiten. 3. Jenkins-Teil Abfragen des Jenkins-Images Docker-Suche Jenkins Rufen Sie das neueste Jenkins-Image ab Docker Pull Jenkins: Neueste Starten Sie Jenkins sudo docker run -d -u 0 --privileged --name jenkins_node1 -p 49003:8080 -v /root/jenkins_node1:/var/jenkins_home jenkins:latest Befehlsanalyse:
Bezieht sich auf die Übergabe der Root-Konto-ID, um das integrierte Konto im Container zu überschreiben
Bezieht sich auf die Zuordnung des Verzeichnisses /var/jenkins_home im Docker-Container zum Verzeichnis /root/jenkins_node1 des Hostcomputers.
Nennen Sie den Container jenkins_node1
Port-Mapping, Mapping des Container-Ports 8080 zum Port 49003 des Hosts
Gewähren Sie höchste Autorität Die Bedeutung des gesamten Befehls Führen Sie einen Container mit dem Image jenkins:latest namens jenkins_node1 aus, verwenden Sie das Root-Konto, um das Konto im Container zu überschreiben, erteilen Sie die höchste Berechtigung, ordnen Sie das Verzeichnis /var/jenkins_home des Containers dem Verzeichnis /root/jenkins_node1 des Hosts zu und ordnen Sie Port 8080 im Container Port 49003 auf dem Host zu. Jenkins anzeigen Warten Sie nach Abschluss der Ausführung einige Sekunden, bis der Jenkins-Container mit der Initialisierung beginnt. Sie können überprüfen, ob sich unter host/root/jenkins_node1 noch viele weitere Dateien befinden Geben Sie localhost:49003 im Browser ein, um zu prüfen, ob Jenkins erfolgreich gestartet wurde Die folgende Schnittstelle zeigt den erfolgreichen Start an: Passwort abrufen cat /root/jenkins_node1/secrets/initialAdminPassword Kopieren Sie das Ausgabekennwort, fügen Sie es in die Seite ein und klicken Sie auf „Weiter“, um zur nächsten Seite zu gelangen. Klicken Sie auf Installieren Warten Sie, bis die Installation abgeschlossen ist, und rufen Sie die Benutzeroberfläche zur Erstellung eines Administratorkontos auf. Geben Sie die Konto- und Kennwortinformationen ein und klicken Sie auf Speichern (Informationen vervollständigen), um zur Startseite zu gelangen. Konfigurieren Sie Jenkins, rufen Sie die Systemverwaltungsseite auf und verwalten Sie Plug-Ins Wählen Sie das SSH-Plugin aus. Führen Sie die Installation direkt durch, warten Sie, bis die Installation abgeschlossen ist, und kehren Sie zur Startseite zurück. Gehen Sie zu Systemverwaltung -> Systemkonfiguration Ziehen Sie nach unten und klicken Sie auf „Über SSH veröffentlichen“. Wählen Sie Erweitert, geben Sie die Server-IP, den Benutzernamen und das Passwort ein und klicken Sie auf Konfiguration testen Wenn „Erfolg“ angezeigt wird, bedeutet dies, dass die Konfiguration korrekt ist. Anschließend speichern und zur Startseite zurückkehren Neues Projekt erstellen Geben Sie den Projektnamen ein Wählen Sie die Quellcodeverwaltung aus, verwenden Sie die Git-Verwaltung, geben Sie die GitHub-Repository-Adresse ein und fügen Sie einen GitHub-Benutzer hinzu Beenden Sie den Vorgang und wählen Sie die Build-Umgebung aus. Ausgeführte Befehle sudo docker stop nodeapp || wahr \ && sudo docker rm nodeapp || wahr \ && cd /root/jenkins_node1/workspace/node \ && sudo docker build --rm --no-cache=true -t node - < Docker-Datei \ && sudo docker run -d --privileged=true --name nodeapp -p 3000:3000 -v /root/jenkins_node1/workspace/node:/home/project node Klicken Sie nach dem Speichern auf Jetzt erstellen Nachdem der Build erfolgreich ist, können Sie Ihre Projektdateien im Hostverzeichnis /root/jenkins_node1/workspace/node sehen. Geben Sie die Docker-Serveradresse localhost:3000 in den Browser ein, um auf die Seiteninformationen zuzugreifen Wenn der Start fehlschlägt, können Sie das Protokoll überprüfen, um die Fehlerursache zu ermitteln. Docker-Protokolle NodeApp 4. Automatische Bereitstellung von Jenkins + GitHub Wenn Sie möchten, dass Jenkins den neuesten Code automatisch abruft und erneut bereitstellt, nachdem der lokale Code übermittelt und an GitHub gesendet wurde, lesen Sie bitte weiter Der Server muss vom Internet aus erreichbar sein. Wenn Sie ihn lokal testen möchten, können Sie versuchen, mit natapp oder ngrok ins Intranet einzudringen Klicken Sie auf der Startseite auf „Benutzer“ Home -> Benutzer -> root Klicken Sie auf „Einstellungen“ -> „API-Token anzeigen“ Kopieren Sie den Wert im API-Token Gehen Sie zurück zu Home -> Node -> Configuration -> Build Triggers und fügen Sie den Authentication Token ein. Loggen Sie sich auf Ihrer GitHub-Projektseite ein und öffnen Sie Einstellungen -> Webhooks -> Webhooks hinzufügen Hinzufügen von Webhooks Ändern Sie die Jenkins-Sicherheitsrichtlinie Wählen Sie auf der Jenkins-Homepage System Management -> Configure Global Security (das unter System Settings) und legen Sie Folgendes fest An diesem Punkt, nachdem der Git-Push abgeschlossen ist, erstellt und stellt Jenkins automatisch bereit. 5. Allgemeine Docker-Befehle Diejenigen, die sich für Docker interessieren, können mehr erfahren und weiter lernen Spiegelbezogen Bild abfragen Docker-Suche [Name] Ziehen Sie das Bild Docker Pull [Name] Importieren eines Bilds Docker laden < /home/node.tar.gz Exportieren eines Bildes Docker speichern > /home/node.tar.gz Alle Bilder abfragen Docker-Bilder Löschen eines Bildes Docker RMI [Name] Ändern des Bildnamens Docker-Tag docker.io/node node Containerbezogen Start-up # Ausführen und interaktiven Modus aktivieren docker run -it --name myjava java bash # Im Hintergrund ausführen docker run -d --name myjava java Portzuordnung docker run -it --name myjava -p 9000:8085 -p 9000:8086 java bash Verzeichniszuordnung docker run -it --name myjava -v /home/project:/soft --privileged docker.io/node bash Geben Sie den im Hintergrund laufenden Container ein docker exec -it Name bash Automatischer Neustart docker run --restart=always -it --name myjava -p 9000:8085 -p 9000:8086 java bash Einen Container anhalten Docker-Pause-Knoten Stoppen und Anhalten des Containers Docker-Knoten fortsetzen Stoppen des Containers Docker-Stopp-Knoten Starten des Containers Docker Start -i Knoten Container anzeigen Docker ps -a Docker-Netzwerksegment bezogen Erstellen eines Netzwerksegments Docker-Netzwerk erstellen net1 Anzeigen von Netzwerksegmentinformationen Docker-Netzwerk inspizieren net1 Netzwerksegmentinformationen löschen Docker-Netzwerk rm net1 6. Zusammenfassung Ich habe kürzlich Node gelernt und wollte daher versuchen, diesen automatisierten Bereitstellungsprozess über Docker+Jenkins zu implementieren. Nach einem Tag harter Arbeit gelang mir die Konfiguration endlich. Zuvor wurde pm2 zum Verwalten von Knotenprojekten und pm2 zum automatischen Bereitstellen von Knotenprojekten verwendet. Wenn Sie interessiert sind, können Sie einen Blick darauf werfen. Verwenden Sie pm2, um das Knotenprojekt automatisch bereitzustellen. Dies ist eine Zusammenfassung für mich selbst. Bitte weisen Sie auf schlecht geschriebene Teile hin. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
Vorwort 1. Benchmarking ist eine Art Leistungstes...
Die MySQL Master-Slave-Replikation ermöglicht die...
Inhaltsverzeichnis 1. Warum brauchen wir Unit-Tes...
Die Datensatzsperre sperrt einen einzelnen Indexd...
In diesem Artikel gehen wir davon aus, dass Sie b...
Um VMWare unter Linux zu installieren, müssen Sie...
Inhaltsverzeichnis 1. Benutzerdefinierte Anweisun...
Wie installiere ich PHP7 unter Linux? 1. Installi...
Inhaltsverzeichnis Vorwort: Freundliche Tipps: Va...
Der Originalcode lautet: <div Klasse = "K...
Erstens: Stellen Sie zunächst sicher, dass die Ser...
Wie erreicht man Internationalisierung in React? ...
ins und del wurden in HTML 4.0 eingeführt, um Auto...
Inhaltsverzeichnis 1. Anfrage erhalten: 2. Anfrag...
1. Installation und Nutzung Installieren Sie es z...