Ich hatte nicht vor, diesen Blog zu schreiben, aber während des eigentlichen Vorgangs wurde ich zum einen von Netzwerkproblemen überwältigt (ich habe wirklich das Gefühl, dass das Netzwerk die Leute in den Wahnsinn treiben kann. Andere können Pakete und Bilder in Sekunden herunterladen, aber ich fühle mich so elend, wenn ich auf meine wenige KB kleine Pipe schaue), und zum anderen gibt es hier immer noch einige Fallstricke. Ich habe es aufgeschrieben, um zu verhindern, dass andere die Fallstricke wiederholen. Einige Hinweise:
Vorbereitung
Docker installierenOffizielle Dokumentation: https://docs.docker.com/engine/install/centos/ 1. Wenn Sie ein neues System auswählen, wird empfohlen, zuerst Yum und den Systemkernel zu aktualisieren Yum-Aktualisierung 2. Stellen Sie sicher, dass Sie die alte Version von Docker deinstallieren
yum entferne Docker \ Docker-Client \ docker-client-neueste \ docker-allgemein \ docker-neueste \ docker-latest-logrotate \ docker-logrotate \ Docker-Engine 3. Installieren Sie yum-utils (das den yum-config-manager bereitstellt, der weiter unten verwendet wird) yum install -y yum-utils 4. Konfigurieren Sie das Yum Alibaba Cloud Docker Repository. Offizielles Docker-Repository: https://download.docker.com/linux/centos/docker-ce.repo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 5. Docker installieren yum install -y docker-ce docker-ce-cli containerd.io 6. Konfigurieren Sie den Docker-Image-Beschleuniger, um den Beschleuniger zu erhalten Adresse: https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["Geben Sie hier Ihre Beschleuniger-URL ein"] } Ende der Laufzeit sudo systemctl daemon-reload sudo systemctl Neustart Docker 7. Docker-Informationen anzeigen Docker-Informationen 8. Hallo-Welt-Test Docker Run Hallo Welt Installieren und initialisieren Sie JenkinsOffizielle Dokumentation: https://www.jenkins.io/doc/book/installing/docker/ Lassen Sie mich zunächst sagen, dass die offizielle Dokumentation das Image Wenn Sie mehr über Dind erfahren möchten, besuchen Sie bitte hier und diesen Blog Jenkins installieren1. Erstellen Sie ein Dockerfile vim Docker-Datei 2. Füllen Sie den folgenden Inhalt in die Dockerfile-Datei aus
VON jenkins/jenkins:lts-jdk11 BENUTZER root Führen Sie apt-get update && apt-get install -y apt-transport-https \ aus. ca-Zertifikate curl gnupg2 \ Software-Eigenschaften-allgemein FÜHREN SIE curl -fsSL https://download.docker.com/linux/debian/gpg aus | apt-key add - Führen Sie den apt-key-Fingerabdruck 0EBFCD88 aus. Führen Sie add-apt-repository \ aus. "deb [arch=amd64] https://download.docker.com/linux/debian \ $(lsb_release -cs) stabil" # Installieren Sie docker-ce-cli, um Docker-Befehle an den Docker-Daemon in Jenkins zu senden Führen Sie apt-get update und apt-get install -y docker-ce-cli aus. 3. Erstellen Sie das Image Docker-Build. -t myjenkins Falls eine Warnung erscheint: [Warnung] IPv4-Weiterleitung ist deaktiviert. Netzwerkverbindung funktioniert nicht. Tatsächlich bedeutet es, dass in Ihrem Linux die IPv4-Paketweiterleitungsfunktion nicht aktiviert ist. Sie können zuerst versuchen, Docker neu zu starten systemctl Neustart Docker Wenn ungültig, dann # 1. Öffnen Sie sysctl.conf vim /etc/sysctl.conf # 2. Fügen Sie die folgende Zeile hinzu net.ipv4.ip_forward=1 # 3. Netzwerk und Docker neu starten systemctl Neustart Netzwerk && systemctl Neustart Docker 4. Führen Sie die Jenkins-Kommentarversion aus Docker-Ausführung \ --name jenkins \ # Geben Sie dem Container einen Namen, genannt jenkins --detach \ # Im getrennten Hintergrundmodus ausführen --publish 8080:8080 \ # Host-Port 8080 dem Container-Port 8080 zuordnen --publish 50000:50000 \ # Host-Port 50000 dem Container-Port 50000 zuordnen --volume jenkins-data:/var/jenkins_home \ # Volume jenkins-data ordnet den Containerpfad /var/jenkins_home zu, damit Sie die Jenkins-Konfiguration direkt auf dem Host ändern können --volume /var/run/docker.sock:/var/run/docker.sock \ # Der Docker Sock auf dem Host ordnet den Docker Sock des Containers zu, damit die Docker-Befehle im Container an den Docker auf dem Host gesendet werden, um myjenkins auszuführen. # Verwenden Sie das soeben erstellte Image von myjenkins, um den Container auszuführen Unkommentierte Version Docker-Ausführung \ --name jenkins \ --trennen \ --veröffentlichen 8080:8080 \ --veröffentlichen 50000:50000 \ --volume jenkins-data:/var/jenkins_home \ --volume /var/run/docker.sock:/var/run/docker.sock \ Abonnieren 5. Ändern Sie die Jenkins-Plugin-Quelle Zuvor haben wir den Pfad Öffnen Sie hudson.model.UpdateCenter.xml vim /var/lib/docker/volumes/jenkins-data/_data/hudson.model.UpdateCenter.xml Ändern Sie die URL in der Datei zum offiziellen Mirror der Tsinghua-Universität:
Im Augenblick: <?xml version='1.1' encoding='UTF-8'?> <Websites> <Seite> <id>Standard</id> <!--Original-URL: https://updates.jenkins.io/update-center.json --> <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url> </Seite> </Seiten> Starten Sie Jenkins neu: Docker startet Jenkins neu Jenkins initialisierenBesuchen Sie: http://<Host-IP>:8080. Geben Sie das Anfangskennwort des Administrators ein, um das Anfangskennwort des Administrators anzuzeigen: cat /var/lib/docker/volumes/jenkins-data/_data/secrets/initialAdminPassword Wählen Sie „Empfohlene Plugins installieren“ Nach einer langen Wartezeit können einige Plug-Ins aufgrund von Netzwerkumgebungs- und Abhängigkeitsproblemen möglicherweise nicht installiert werden. Klicken Sie jedoch auf „Fortfahren“ und beheben Sie das Problem. Als nächstes erstellen Sie Ihr eigenes Administratorkonto und bestätigen die Jenkins-URL Nach dem Eingeben sieht die Hauptseite von Jenkins folgendermaßen aus Lassen Sie uns zunächst das Plugin reparieren, dessen Installation fehlgeschlagen ist Klicken Sie in der linken Menüleiste auf „Jenkins verwalten“, um Jenkins auf die neueste Version zu aktualisieren Denken Sie daran, auf der Update Center-Seite unten das Kontrollkästchen „Jenkins nach Abschluss der Installation neu starten (bei Leerlauf)“ zu aktivieren. Automatisierte Konfiguration und BereitstellungKlicken Sie im Menü auf der linken Seite der Jenkins-Seite auf die erste "Neue Aufgabe", geben Sie den Aufgabennamen ein und wählen Sie Free Style Füllen Sie die folgenden Konfigurationsinformationen aus und speichern Sie sie Der Shell-Befehl lautet: image_tag=`Datum +%J%m%d%H%M%S`; echo $image_tag; # Erstellen Sie das Bild und markieren Sie es docker build -t meineapp:$image_tag .; Docker-Bilder; # Stoppen und löschen Sie die alte Version des MyApp-Containers CID=$(docker ps | grep "meineapp" | awk '{print $1}') echo $CID wenn [ "$CID" != "" ];dann Docker stoppt $CID Docker rm $CID fi # Führen Sie das gerade erstellte Image aus docker run -p 5000:80 --name myapp -d myapp:$image_tag; docker ps -a; Docker protokolliert meine App; Klicken Sie im linken Menü auf „Jetzt erstellen“, um unsere AspNetCoreApp bereitzustellen, und überprüfen Sie die „Konsolenausgabe“. Wenn „Fertig: ERFOLGREICH“ angezeigt wird, bedeutet dies, dass die Bereitstellung erfolgreich war. Besuchen Sie: http://<Host-IP>:5000/hello (beachten Sie den Zusatz „hello“)
Überprüfen Sie nun den laufenden Container in Docker: CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN e167a135f7a0 myapp:20210512152453 „dotnet MyAspNetCore…“ vor 2 Minuten Vor 2 Minuten 0.0.0.0:5000->80/tcp, :::5000->80/tcp myapp e83a2570c334 myjenkins "/sbin/tini -- /usr/…" Vor etwa einer Stunde Up Vor etwa einer Stunde 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp jenkins Vorsichtsmaßnahmen1. Informationen zum Herunterladen und Installieren von Jenkins BlueOcean und anderen Plug-Ins Wenn Jenkins Plugins wie Bluocean installieren möchte, folgen Sie nicht der offiziellen Website und geben Sie den Installationsbefehl in die Docker-Datei ein. Auch wenn Sie den Parameter Darüber hinaus können Sie bei der Installation von Jenkins auch direkt das Image jenkinsci/blueocean verwenden, welches die entsprechenden Plugins von blueocean enthält. 2. Über die MyApp-Container-Portzuordnung 5000:80 Da der nach außen sichtbare Port in meinem Dockerfile 80 ist, habe ich den Container-Port 80 dem Port 5000 des Hosts zugeordnet. Sie müssen hier entsprechend Ihrer tatsächlichen Situation Änderungen vornehmen. 3. Wenn Sie an dind (Docker in Docker) interessiert sind Wenn Sie mehr über Dind erfahren möchten, besuchen Sie bitte hier und diesen Blog Oben finden Sie Einzelheiten zum Thema der automatischen Bereitstellung von Jenkins + Docker + ASP.NET Core. Weitere Informationen zur automatischen Bereitstellung von Jenkins + Docker + ASP.NET Core finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Vue-Komponenten Dynamische Komponenten detaillierte Erklärung
>>: Detaillierte Erklärung des Unterschieds zwischen CSS-Link und @import
Inhaltsverzeichnis 1. Installationsumgebung 2. In...
Dieser Artikel beschreibt anhand eines Beispiels,...
Ich habe mir kürzlich die Pressekonferenz von App...
1. Einführung in Linux .NET Core Microsoft hat .N...
Häufig verwendete Anzeigebefehle für MySQL 1. Zei...
Das Span-Tag wird häufig beim Erstellen von HTML-...
Hintergrund Da die Anzahl der Anwendungssysteme w...
Inhaltsverzeichnis 1. Öffnen Sie die Datei Parame...
Wir alle wissen, dass Jmeter eine native Ergebnis...
1. Einführung in das Geschäftsszenario Angenommen...
Meistens werden Plug-Ins zum Hochladen von Dateie...
Laden Sie zunächst die grüne kostenlose Installat...
Docker-Daemon-Socket Der Docker-Daemon kann über ...
CSS-Operationen CSS $("").css(name|pro|...
In diesem Artikel wird der spezifische Code von R...