Installation von Jenkins mit Docker

JenkinsJenkinsBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir den Prozess der Installation von Jenkins mithilfe von Docker untersuchen. Jenkins ist ein weit verbreiteter Automatisierungsserver für kontinuierliche Integration und kontinuierliche Bereitstellung (Continuous Integration/Continuous Delivery, CI/CD). Am Ende dieses Labs haben Sie praktische Erfahrungen in der Einrichtung von Jenkins mit Docker gesammelt, was Ihnen eine solide Grundlage für zukünftige DevOps-Projekte bietet.

Für Anfänger ist es wichtig zu verstehen, dass Docker eine Plattform ist, die es Ihnen ermöglicht, Anwendungen in isolierten Umgebungen, sogenannten Containern, zu verpacken und auszuführen. Diese Isolation stellt sicher, dass Ihre Anwendung auf verschiedenen Systemen konsistent funktioniert. Jenkins hingegen ist ein Tool, das bei der Automatisierung von Teilen der Softwareentwicklung hilft, insbesondere beim Bauen, Testen und Bereitstellen von Code.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL jenkins(("Jenkins")) -.-> jenkins/InstallingJenkinsGroup(["Installing Jenkins"]) jenkins(("Jenkins")) -.-> jenkins/UsingJenkinsGroup(["Using Jenkins"]) jenkins/InstallingJenkinsGroup -.-> jenkins/initial_settings("Jenkins Initial Settings") jenkins/InstallingJenkinsGroup -.-> jenkins/docker_installation("Use Docker Installation") jenkins/UsingJenkinsGroup -.-> jenkins/create_project("Create Project") subgraph Lab Skills jenkins/initial_settings -.-> lab-391174{{"Installation von Jenkins mit Docker"}} jenkins/docker_installation -.-> lab-391174{{"Installation von Jenkins mit Docker"}} jenkins/create_project -.-> lab-391174{{"Installation von Jenkins mit Docker"}} end

Vorbereitung der Docker-Umgebung

In diesem Schritt stellen wir sicher, dass Docker korrekt auf unserem System installiert und läuft. Docker ist für dieses Lab unerlässlich, da es uns ermöglicht, Jenkins in einem Container auszuführen und so eine konsistente und isolierte Umgebung bereitzustellen.

Zunächst überprüfen wir, ob Docker installiert und läuft. Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus:

docker --version
Docker version command output

Dieser Befehl sollte die auf Ihrem System installierte Docker-Version anzeigen. Sie sollten eine Ausgabe ähnlich der folgenden sehen:

Docker version 20.10.21, build 20.10.21-0ubuntu1~22.04.3

Wenn Sie keine Versionsnummer sehen, bedeutet dies möglicherweise, dass Docker nicht installiert ist oder nicht im Pfad (PATH) Ihres Systems enthalten ist. Sollte dies der Fall sein, keine Sorge; wir werden das bald beheben.

Als Nächstes überprüfen wir, ob der Docker-Daemon läuft:

sudo systemctl status docker

Dieser Befehl überprüft den Status des Docker-Dienstes. Sie sollten eine Ausgabe sehen, die anzeigt, dass der Docker-Dienst aktiv (läuft) ist. Es könnte so aussehen:

● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2023-09-11 10:00:00 UTC; 2h 30min ago

Wenn Docker nicht läuft, sehen Sie eine Meldung, die anzeigt, dass der Dienst inaktiv oder fehlgeschlagen ist.

Herunterladen des Jenkins Docker-Images

In diesem Schritt werden wir das offizielle Jenkins Docker-Image von Docker Hub herunterladen. Docker Hub ist ein cloudbasierter Repository-Service, in dem Docker-Images gespeichert und geteilt werden.

Um die neueste LTS (Long Term Support, Langzeitunterstützung)-Version von Jenkins herunterzuladen, führen Sie den folgenden Befehl aus:

docker pull jenkins/jenkins:lts

Lassen Sie uns diesen Befehl analysieren:

  • docker pull teilt Docker mit, ein Image herunterzuladen.
  • jenkins/jenkins ist der Name des Images (erstellt vom Jenkins-Projekt).
  • :lts ist ein Tag, das angibt, dass wir die Langzeitunterstützungsversion möchten, die im Allgemeinen stabiler ist.

Dieser Befehl lädt das Jenkins-Image auf Ihren lokalen Rechner herunter. Der Download kann je nach Ihrer Internetgeschwindigkeit einige Minuten dauern. Sie werden Fortschrittsbalken sehen, die den Downloadstatus der verschiedenen Schichten anzeigen, aus denen das Image besteht.

Nachdem der Download abgeschlossen ist, können Sie überprüfen, ob das Image jetzt lokal verfügbar ist, indem Sie folgenden Befehl ausführen:

docker images

Dieser Befehl listet alle Docker-Images auf Ihrem System auf. Sie sollten das Jenkins-Image in der Ausgabe sehen, ähnlich wie hier:

REPOSITORY         TAG       IMAGE ID       CREATED        SIZE
jenkins/jenkins    lts       7a7add0bf3da   8 days ago     470MB

Wenn Sie das Jenkins-Image nicht sehen, könnte dies bedeuten, dass der Download fehlgeschlagen ist. In diesem Fall versuchen Sie, den docker pull-Befehl erneut auszuführen. Wenn das Problem weiterhin besteht, überprüfen Sie Ihre Internetverbindung oder versuchen Sie, ein anderes Netzwerk zu verwenden.

Erstellen eines Docker-Volumes für Jenkins-Daten

In diesem Schritt werden wir ein Docker-Volume erstellen, um die Jenkins-Daten dauerhaft zu speichern. Dies ist ein entscheidender Schritt für die Aufrechterhaltung Ihrer Jenkins-Konfiguration und des Build-Verlaufs.

Docker-Volumes bieten eine Möglichkeit, die von Docker-Containern generierten und verwendeten Daten dauerhaft zu speichern. Dies ist besonders wichtig für Jenkins, da wir die Konfiguration, die Auftragsdaten und die Build-Artefakte beibehalten möchten, auch wenn der Container gestoppt oder entfernt wird.

Erstellen Sie ein neues Volume namens jenkins-data, indem Sie folgenden Befehl ausführen:

docker volume create jenkins-data

Dieser Befehl teilt Docker mit, ein neues Volume zu erstellen. Docker verwaltet diese Volumes und speichert sie in einem Teil des Dateisystems Ihres Hosts.

Sie können überprüfen, ob das Volume erstellt wurde, indem Sie alle Docker-Volumes auflisten:

docker volume ls

Sie sollten jenkins-data in der Liste der Volumes sehen, wie hier:

DRIVER    VOLUME NAME
local     jenkins-data

Wenn Sie das Volume nicht sehen, versuchen Sie, es erneut zu erstellen. Wenn das Problem weiterhin besteht, stellen Sie sicher, dass Sie die erforderlichen Berechtigungen haben, um Docker-Volumes zu erstellen (Sie müssen möglicherweise sudo verwenden, wenn Ihr Benutzer nicht in der Docker-Gruppe ist).

Das Verständnis von Docker-Volumes ist wichtig, weil:

  1. Sie es ermöglichen, dass Daten über den Lebenszyklus eines Containers hinaus bestehen bleiben.
  2. Sie einfach gesichert und wiederhergestellt werden können.
  3. Sie bei Bedarf zwischen Containern geteilt werden können.

Starten des Jenkins Docker-Containers

Jetzt, da wir das Jenkins-Image und ein Volume für die dauerhafte Datenspeicherung haben, können wir den Jenkins-Container starten. Dieser Schritt startet tatsächlich Jenkins in einem Docker-Container und macht es auf Ihrem System zugänglich.

Wir werden den Container mit den folgenden Konfigurationen starten:

  • Ordnen Sie den Container-Port 8080 dem Host-Port 8080 zu (für die Web-Oberfläche).
  • Ordnen Sie den Container-Port 50000 dem Host-Port 50000 zu (für Agent-Verbindungen).
  • Binden Sie das jenkins-data-Volume an /var/jenkins_home im Container.
  • Starten Sie den Container im detached-Modus.

Führen Sie den folgenden Befehl aus, um den Jenkins-Container zu starten:

docker run -d -p 8080:8080 -p 50000:50000 -v jenkins-data:/var/jenkins_home --name jenkins-lts jenkins/jenkins:lts

Lassen Sie uns diesen Befehl analysieren:

  • docker run erstellt und startet einen neuen Container.
  • -d startet den Container im detached-Modus (im Hintergrund).
  • -p 8080:8080 ordnet den Port 8080 im Container dem Port 8080 auf Ihrem Host zu.
  • -p 50000:50000 ordnet den Port 50000 im Container dem Port 50000 auf Ihrem Host zu.
  • -v jenkins-data:/var/jenkins_home bindet unser Docker-Volume an das Jenkins-Home-Verzeichnis im Container.
  • --name jenkins-lts gibt unserem Container einen Namen für einfache Referenz.
  • jenkins/jenkins:lts gibt das zu verwendende Image an.

Nachdem Sie diesen Befehl ausgeführt haben, wird Docker den Jenkins-Container im Hintergrund starten. Sie können überprüfen, ob der Container läuft, indem Sie folgenden Befehl ausführen:

docker ps

Dieser Befehl listet alle laufenden Docker-Container auf. Sie sollten den Jenkins-Container in der Ausgabe sehen, ähnlich wie hier:

CONTAINER ID   IMAGE                 COMMAND                  CREATED         STATUS         PORTS                                                                                      NAMES
747b6dc7b1af   jenkins/jenkins:lts   "/usr/bin/tini -- /u…"   4 seconds ago   Up 3 seconds   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp   jenkins-lts

Wenn Sie den Jenkins-Container nicht sehen, ist es möglich, dass er nicht gestartet werden konnte. Sie können nach Fehlermeldungen suchen, indem Sie folgenden Befehl ausführen:

docker logs jenkins-lts

Dies zeigt die Logs aus dem Container an, die helfen können, eventuelle Probleme zu diagnostizieren.

Zugriff auf die Jenkins-Weboberfläche

Da der Jenkins-Container jetzt läuft, können wir auf seine Weboberfläche zugreifen, um die erste Einrichtung abzuschließen. Dieser Schritt führt Sie durch den Zugriff auf Jenkins und die Durchführung der ersten Konfiguration.

Es gibt zwei Möglichkeiten, auf die Jenkins-Weboberfläche zuzugreifen:

  1. Klicken Sie auf das +-Symbol in der oberen Registerkarte der virtuellen Umgebung, um einen neuen Web Service zu erstellen, und geben Sie Port 8080 ein.
Creating Jenkins web service tab

Diese Methode funktioniert innerhalb der Lab-Umgebung und erstellt eine neue Registerkarte, die die Jenkins-Oberfläche anzeigt.

  1. Öffnen Sie den Firefox-Browser auf dem VNC-Desktop und navigieren Sie zu http://localhost:8080.
Firefox Jenkins access page

Sie sollten die Jenkins-Seite "Jenkins entsperren" sehen. Diese Sicherheitsmaßnahme stellt sicher, dass nur autorisierte Benutzer Jenkins einrichten können.

Für diese Lab-Umgebung lautet der Standardbenutzername admin, und das Passwort ist ebenfalls admin.

Geben Sie diese Anmeldeinformationen auf der Seite "Jenkins entsperren" ein und klicken Sie auf "Weiter".

Jenkins unlock page credentials

Nachdem Sie Jenkins entsperrt haben, werden Sie durch den ersten Einrichtungsprozess geführt, einschließlich der Installation von Plugins und der Erstellung eines Admin-Benutzers. Für dieses Lab können Sie die Option "Install suggested plugins" (Vorgeschlagene Plugins installieren) auswählen, um schnell loszulegen.

Zusammenfassung

In diesem Lab haben wir erfolgreich Jenkins mithilfe von Docker installiert und eingerichtet. Wir haben die wesentlichen Schritte behandelt, darunter die Vorbereitung der Docker-Umgebung, das Herunterladen des Jenkins-Images, das Erstellen eines persistenten Volumes für die Jenkins-Daten, das Starten des Jenkins-Containers und der Zugang zur Jenkins-Weboberfläche für die erste Einrichtung.

Diese praktische Erfahrung hat Ihnen eine solide Grundlage für die Verwendung von Docker zur Bereitstellung von Jenkins vermittelt, eine entscheidende Fähigkeit in modernen DevOps-Praktiken. Sie sind nun bereit, Jenkins weiter zu erkunden, Build-Jobs zu erstellen und es in Ihren Entwicklungsprozess zu integrieren.