Tutorials  /  Container & Cloud

Jenkins auf Ubuntu mit Docker Compose installieren

Ccentron Redaktion · Juli 2025 ·6 Min. Lesezeit ·Container & Cloud, Tutorial

Jenkins ist eine beliebte Open-Source-Anwendung, die in Java entwickelt wurde und sich hervorragend zur Einrichtung von Continuous Integration und Continuous Deployment (CI/CD)-Pipelines eignet. Dadurch wird die Softwarebereitstellung deutlich beschleunigt. Jenkins spielt eine zentrale Rolle bei der Automatisierung des Softwareentwicklungsprozesses (SDLC). Diese Anleitung zeigt Schritt für Schritt, wie Jenkins auf einer Ubuntu-Instanz mithilfe von Docker Compose eingerichtet wird.

Systemvoraussetzungen

  • Eine neu eingerichtete Cloud-Instanz mit Ubuntu 20.04 oder 18.04
  • Docker und Docker Compose müssen auf dem Server installiert sein
K8

Passende Infrastruktur bei centron

Vom Container zum Cluster: Managed Kubernetes mit cStack gibt es ab 29,99 € im Monat – Control Plane, AutoScaler und Traffic inklusive. Managed Kubernetes ansehen →

Docker Compose-Datei für Jenkins erstellen

Erstelle zuerst ein Verzeichnis mit dem Namen jenkins-compose und darin eine Datei namens docker-compose.yml.

Konsole
$ mkdir jenkins-compose

$ cd jenkins-compose

$ touch docker-compose.yml

Öffne nun die erstellte Datei mit einem Editor deiner Wahl:

Konsole
$ nano docker-compose.yml

Füge folgendes Skript in die Datei docker-compose.yml ein:

YAML
version: '3.8'
services:
  jenkins:
    container_name: jenkins
    restart: always
    image: jenkins/jenkins:lts
    ports:
      - 8080:8080
    volumes:
      - jenkins-home:/var/jenkins_home

volumes:
  jenkins-home:

Aufbau der Compose-Datei verstehen

version: '3.8'

Diese Angabe definiert das Dateiformat der Docker Compose-Datei. Andere Versionen können zu Problemen mit dieser Konfiguration führen.

services:

In diesem Abschnitt werden alle Container aufgeführt, die durch Docker Compose gestartet werden. Jeder Container wird einzeln konfiguriert.

YAML
jenkins:
  container_name: jenkins
  restart: always
  image: jenkins/jenkins:lts
  ports:
    - 8080:8080
  volumes:
    - jenkins-home:/var/jenkins_home

Diese Konfiguration legt fest, wie der Jenkins-Container aufgebaut ist – einschließlich des Container-Namens, des Restart-Verhaltens, des verwendeten Images, der Portweiterleitungen und der Volumes.

Die Anweisung restart: always sorgt dafür, dass der Container nach einem Neustart des Systems automatisch wieder gestartet wird.

volumes:

Hier wird ein Volume namens jenkins-home definiert, das im Container verwendet wird, um dauerhaft Daten zu speichern.

Docker-Dienst starten

Nachdem die Docker-Compose-Datei erstellt wurde, solltest du den Docker-Dienst aktivieren und starten. Durch das Aktivieren wird sichergestellt, dass Docker beim Systemstart automatisch ausgeführt wird.

Konsole
$ sudo systemctl enable docker.service

$ sudo systemctl start docker.service

Jenkins-Container starten

Mit der vorhandenen Docker-Compose-Datei kannst du Jenkins nun im Hintergrund starten, indem du folgenden Befehl ausführst:

Konsole
$ docker-compose up -d

Dieser Befehl lädt das offizielle Jenkins-Image von Docker Hub herunter und startet den Container im Hintergrund.

Status des Containers prüfen

Um zu überprüfen, ob Jenkins erfolgreich läuft, verwende diesen Befehl:

Konsole
$ docker-compose ps

SSL-Zertifikate für Jenkins mit Nginx aktivieren

Damit Jenkins über das HTTPS-Protokoll erreichbar ist, musst du den Nginx-Webserver einrichten, SSL-Zertifikate konfigurieren und den Datenverkehr an den Jenkins-Server weiterleiten.

Nginx-Webserver installieren

Konsole
# apt install nginx -y

Nginx für Jenkins konfigurieren

Bearbeite die Standardkonfigurationsdatei von Nginx wie folgt:

Konsole
# nano /etc/nginx/conf.d/default.conf

Füge folgenden Server-Block für deine Domain ein:

Code
server {
  server_name example.com www.example.com
}

Um SSL zu aktivieren, folge einem passenden Let's Encrypt-Tutorial für Nginx. Dieses aktualisiert die Konfigurationsdatei automatisch mit den nötigen SSL-Einstellungen. Öffne sie anschließend erneut:

Konsole
# nano /etc/nginx/conf.d/default.conf

Ergänze jetzt folgende Weiterleitungsregeln, um den Datenverkehr an Jenkins zu übergeben:

Code
location / {
  proxy_pass http://127.0.0.1:8080;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-For $remote_addr;
}

Beispielhafte Nginx-Endkonfiguration

Die finale Konfiguration deiner Nginx-Datei sieht wie folgt aus:

Code
server {
  server_name example.com www.example.com;

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

    location / {
      proxy_pass http://127.0.0.1:8080;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-For $remote_addr;
    }
}

server {
    if ($host = www.example.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    if ($host = example.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

  server_name example.com www.example.com;
    listen 80;
    return 404; # managed by Certbot
}

Firewall-Konfiguration für den Server

Um deinen Server besser zu schützen, solltest du die Firewall so konfigurieren, dass nur die wichtigsten Ports offen sind – also 22 (SSH), 80 (HTTP) und 443 (HTTPS).

Firewall (UFW) im Betriebssystem einrichten

Installiere zunächst die einfache Firewall „Uncomplicated Firewall“ (UFW):

Konsole
# apt install ufw

Blockiere eingehenden Verkehr standardmäßig und erlaube ausgehende Verbindungen:

Konsole
# ufw default deny incoming
# ufw default allow outgoing

Erlaube nun die benötigten Ports manuell:

Konsole
# ufw allow ssh
# ufw allow http
# ufw allow https

Wichtig: Stelle sicher, dass der SSH-Port nicht gesperrt ist, bevor du die Firewall aktivierst – sonst verlierst du den Zugriff auf deinen Server.

Aktiviere anschließend die Firewall und prüfe den Status:

Konsole
# ufw enable

# ufw status

Jenkins-Installation überprüfen

Sobald Jenkins läuft, rufe die URL https://www.example.com/ im Browser auf. Das System verlangt nach dem initialen Administrator-Passwort.

Mit folgendem Befehl kannst du das Passwort direkt aus dem Container auslesen:

Konsole
$ docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword

Jenkins fordert dich anschließend auf, empfohlene Plugins zu installieren. Danach kannst du die Zugangsdaten für einen Administrator festlegen. Nun ist Jenkins einsatzbereit zur Erstellung von CI/CD-Pipelines.

Fazit

Docker Compose ist ein hilfreiches Tool zur Verwaltung und Bereitstellung containerbasierter Anwendungen. In dieser Anleitung wurde gezeigt, wie man Jenkins auf einem Ubuntu-Server mithilfe von Docker Compose installiert, mit HTTPS über Nginx absichert und den Zugang über Firewalls schützt.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Container & Cloud
Teilen
Noch offene Fragen?

Unser Team hilft Ihnen bei Ihrem konkreten Setup weiter – von Menschen, die die Plattform selbst betreiben.

War dieses Tutorial hilfreich?

Ihre Antwort wird anonym gespeichert und hilft uns, die Tutorials zu verbessern.

Kommentare

Noch keine Kommentare – stellen Sie die erste Frage zu diesem Tutorial.

Zum Kommentieren anmelden

Kommentare stehen centron-Kunden offen. Melden Sie sich in Ihrem Konto an, um eine Frage zu diesem Tutorial zu stellen.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren