how to install ubuntu on docker

how to install ubuntu on docker

Wer Linux-Server betreibt, stolpert früher oder später über die Frage, wie man Testumgebungen sauber hält. Niemand will sein Hauptsystem mit unzähligen Bibliotheken und Experimenten zumüllen. Genau hier kommt die Container-Technologie ins Spiel. Die Anleitung zum Thema How To Install Ubuntu On Docker ist nicht nur eine technische Notwendigkeit, sondern der Weg zu einer aufgeräumten Entwicklerumgebung. Ich habe jahrelang Server direkt auf Blech oder in schweren virtuellen Maschinen aufgesetzt. Der Wechsel zu Containern war eine Offenbarung. Es geht schnell. Es ist leichtgewichtig. Und wenn man etwas kaputt macht, löscht man den Container einfach und fängt von vorne an. In den nächsten Abschnitten schauen wir uns an, wie man das Betriebssystem in einen Container packt, ohne dabei die Übersicht zu verlieren.

Die Grundlagen der Containerisierung verstehen

Docker ist kein Zauberwerk. Es ist ein Werkzeug zur Isolation. Wenn wir von einem Ubuntu-Container sprechen, meinen wir eigentlich ein schmales Abbild des Dateisystems. Da ist kein eigener Kernel drin. Der Container teilt sich den Kernel mit dem Host-System. Das macht die Sache so verdammt schnell. Ein typischer Download des offiziellen Abbilds ist kaum 30 Megabyte groß. Im Vergleich zu einer ISO-Datei mit mehreren Gigabyte ist das ein riesiger Vorteil für die Effizienz. Für eine genauere Betrachtung zu diesem Bereich, empfehlen wir: diesen verwandten Artikel.

Man muss sich klarmachen, dass dieser Container kein vollwertiger Ersatz für einen Desktop ist. Wer eine grafische Oberfläche mit Fenstern und Mauszeiger erwartet, wird enttäuscht sein. Hier geht es um die Kommandozeile. Es geht um Dienste, Skripte und Webserver. Die offizielle Dokumentation von Docker bietet hierzu tiefgehende Einblicke in die Architektur. Wer diese Logik einmal verstanden hat, wird kaum noch zurück zur klassischen Virtualisierung wollen.

Warum das offizielle Abbild die beste Wahl ist

Es gibt tausende Versionen von Linux da draußen. In der Docker-Welt nennt man diese Vorlagen Images. Man findet sie im Docker Hub. Ich rate dringend dazu, nur das offizielle Image von Canonical zu verwenden. Warum? Weil Sicherheit im Netz keine Verhandlungssache ist. Inoffizielle Abbilder können Hintertüren enthalten oder schlicht veraltet sein. Das offizielle Image wird regelmäßig gepflegt. Sicherheitslücken werden dort zügig geschlossen. Das ist die Basis für alles, was wir vorhaben. Für weitere Hintergründe zu dieser Entwicklung ist eine detaillierte Berichterstattung bei Netzwelt zu finden.

Schritt für Schritt How To Install Ubuntu On Docker

Zuerst muss die Software auf dem Rechner laufen. Egal ob Windows, macOS oder Linux – die Engine ist die Voraussetzung. Unter Windows und Mac nutzt man meist das Desktop-Paket. Unter Linux installiert man es über die Paketverwaltung. Sobald der Befehl docker version eine sinnvolle Ausgabe liefert, sind wir bereit für den nächsten Schritt.

Das Abbild herunterladen

Wir fangen mit dem Ziehen des Images an. Der Befehl ist simpel. Man tippt docker pull ubuntu in das Terminal. Jetzt passiert etwas Magisches. Docker schaut lokal nach, ob das Abbild schon da ist. Wenn nicht, lädt er es von den Servern herunter. Man kann auch spezifische Versionen wählen. Wenn man zum Beispiel die Version 24.04 braucht, schreibt man ubuntu:24.04. Ohne diesen Zusatz bekommt man immer die aktuellste stabile Version, die als "latest" markiert ist.

Den Container zum ersten Mal starten

Jetzt wird es ernst. Wir wollen rein in das System. Der Befehl dafür kombiniert verschiedene Schalter. Wir nutzen docker run -it ubuntu. Das -i steht für interaktiv. Das -t gibt uns ein Terminal. Ohne diese beiden Buchstaben würde der Container starten und sofort wieder beenden, weil er nichts zu tun hat. Sobald man den Befehl abschickt, ändert sich die Eingabeaufforderung. Man ist nun Root-User innerhalb des Containers.

Arbeiten in der isolierten Umgebung

Man ist jetzt drin. Alles fühlt sich an wie ein normales Ubuntu. Aber Vorsicht. Es ist ein Minimal-System. Viele gewohnte Werkzeuge fehlen. Es gibt kein curl, kein git und oft nicht mal einen Texteditor wie vim oder nano. Das ist Absicht. Ein Container soll klein sein. Man installiert nur das, was man wirklich braucht.

Zuerst muss man die Paketquellen aktualisieren. Das macht man mit apt update. Danach kann man Software installieren. Wer eine Webseite testen will, installiert vielleicht Apache oder Nginx. Wer Python-Skripte schreibt, installiert die entsprechende Laufzeitumgebung. Ein wichtiger Punkt ist die Flüchtigkeit. Wenn man den Container löscht, sind alle Änderungen weg. Das ist ein Feature, kein Fehler.

Daten dauerhaft speichern

Wenn man Daten behalten will, braucht man Volumes. Man spiegelt einen Ordner vom echten Computer in den Container. So kann man mit seinem Lieblingseditor auf dem Host-System programmieren und der Code läuft direkt im Container. Das Kommando dafür nutzt den -v Schalter. Zum Beispiel: docker run -it -v /mein/ordner:/daten ubuntu. Alles, was man im Container in /daten speichert, landet direkt auf der Festplatte des echten Rechners. Das ist der Standardweg für ernsthafte Arbeit.

Netzwerke und Ports richtig konfigurieren

Ein Container lebt isoliert. Er hat eine eigene IP-Adresse innerhalb eines internen Brücken-Netzwerks. Will man von außen auf einen Webserver im Container zugreifen, muss man eine Brücke bauen. Das nennt man Port-Mapping. Mit dem Schalter -p verbindet man einen Port des Host-Systems mit einem Port des Containers.

Stellen wir uns vor, eine Webanwendung läuft auf Port 80. Man möchte sie im Browser über localhost:8080 erreichen. Dann lautet der Befehl docker run -p 8080:80 ubuntu. Jetzt leitet Docker alle Anfragen, die auf dem Rechner an Port 8080 ankommen, direkt an Port 80 im Ubuntu-Container weiter. Das ist extrem praktisch, um verschiedene Versionen einer Software gleichzeitig zu testen, ohne dass sie sich gegenseitig in die Quere kommen.

Eigene Abbilder erstellen mit dem Dockerfile

Man will nicht jedes Mal alles von Hand installieren. Das ist mühsam und fehleranfällig. Die Lösung ist ein Dockerfile. Das ist eine einfache Textdatei. Darin schreibt man auf, was passieren soll. Man fängt an mit FROM ubuntu. Dann folgen Befehle wie RUN apt update && apt install -y git. Mit docker build erstellt man daraus sein ganz eigenes, angepasstes Abbild.

Dieses Vorgehen ist das Herzstück moderner Softwareentwicklung. Man kann diese Datei einem Kollegen schicken. Er baut das Image und hat exakt die gleiche Umgebung wie man selbst. Keine Diskussionen mehr über "bei mir läuft es aber". Die Reproduzierbarkeit ist der eigentliche Grund für den Erfolg dieser Technologie. Auf der Seite von Ubuntu findet man oft spezifische Hinweise für Entwickler, wie man diese Umgebungen optimiert.

Häufige Stolperfallen und wie man sie umgeht

Es läuft nicht immer alles glatt. Ein Klassiker ist das Berechtigungsproblem. Wer Docker unter Linux nutzt, muss oft sudo vor jeden Befehl setzen. Das nervt. Man kann seinen Benutzer zur Docker-Gruppe hinzufügen, um das zu umgehen. Aber Vorsicht. Wer Zugriff auf Docker hat, hat im Grunde Root-Rechte auf dem ganzen System. Das sollte man nur auf privaten Rechnern machen, nicht auf öffentlich erreichbaren Servern.

Ein weiteres Thema ist der Ressourcenverbrauch. Zwar sind Container effizient, aber wenn man hundert Stück davon startet, geht auch der stärkste Server in die Knie. Besonders der Arbeitsspeicher kann knapp werden. Man kann Limits setzen. Mit --memory="512m" begrenzt man einen Container auf 512 Megabyte RAM. Das schützt das Gesamtsystem vor Amok laufenden Prozessen.

Die Sache mit dem Storage-Driver

In manchen Fällen beschweren sich Nutzer über langsame Festplattenzugriffe. Das liegt oft am verwendeten Storage-Driver. Standardmäßig ist das meist overlay2. Das ist gut und schnell. Probleme gibt es manchmal bei sehr alten Linux-Distributionen oder speziellen Dateisystemen. In 99 Prozent der Fälle muss man sich darum nicht kümmern. Aber wenn die Datenbank im Container schneckenlangsam ist, lohnt sich ein Blick in die Docker-Info.

Fortgeschrittene Nutzungsszenarien

Wenn man das How To Install Ubuntu On Docker Thema gemeistert hat, will man mehr. Man will vielleicht mehrere Container miteinander verbinden. Eine Datenbank, ein Backend und ein Frontend. Alles in eigenen Ubuntu-Instanzen. Hier kommt Docker Compose ins Spiel. Statt lange Befehle in die Konsole zu tippen, schreibt man eine YAML-Datei.

In dieser Datei definiert man das ganze Ökosystem. Man gibt an, welcher Container von welchem abhängt. Man definiert Netzwerke, in denen sie untereinander kommunizieren können, ohne dass die Außenwelt etwas davon mitbekommt. Das ist saubere Architektur. Man kann das ganze System mit einem einzigen Befehl starten: docker-compose up. Es ist fast wie Magie, wenn plötzlich ein ganzer Stack aus dem Nichts erscheint.

Sicherheit im Fokus

Sicherheit ist bei Ubuntu-Containern ein großes Thema. Man sollte niemals Dienste als Root laufen lassen, wenn es nicht unbedingt sein muss. Im Dockerfile kann man einen eigenen Benutzer anlegen. Mit dem Befehl USER meinbenutzer wechselt man den Kontext. Sollte ein Angreifer eine Lücke in der Webanwendung finden, ist er im Container gefangen und hat dort keine Administratorrechte. Das ist eine zusätzliche Hürde, die man immer einbauen sollte.

Zudem sollte man die Images klein halten. Jedes installierte Paket ist eine potenzielle Angriffsfläche. Es gibt sogar Varianten von Ubuntu, die extrem abgespeckt sind. Aber für den Anfang ist das Standard-Image genau richtig. Es bietet die gewohnte Umgebung und alle Tools, die man kennt.

Warum Ubuntu die ideale Basis ist

Es gibt viele Linux-Distributionen für Docker. Alpine Linux ist sehr beliebt, weil es winzig ist. Aber Alpine nutzt eine andere Standard-C-Bibliothek. Das führt oft zu Problemen bei der Kompilierung von Software. Ubuntu hingegen ist der Industriestandard. Fast jede Softwareanleitung im Netz bezieht sich auf Ubuntu oder Debian.

Wenn man Probleme hat, findet man sofort eine Lösung in Foren oder auf Plattformen wie Stack Overflow. Die Gemeinschaft ist riesig. Das spart Zeit und Nerven. Außerdem ist die Paketverwaltung apt extrem stabil und zuverlässig. Wer professionell arbeitet, schätzt diese Vorhersehbarkeit. Man weiß einfach, was man bekommt. Das ist im Arbeitsalltag viel wertvoller als ein paar gesparte Megabyte auf der Festplatte.

Integration in CI/CD-Pipelines

In modernen Firmen wird Code automatisch getestet. Jedes Mal, wenn ein Entwickler seinen Code hochlädt, startet ein Ubuntu-Container. Darin wird die Software gebaut und geprüft. Wenn alle Tests grün sind, wird der Container wieder gelöscht. Ohne diese Technologie wäre die heutige Geschwindigkeit bei Software-Updates unvorstellbar. Die Linux Foundation bietet viele Ressourcen an, um zu verstehen, wie diese Automatisierung die IT-Welt verändert hat.

👉 Siehe auch: diesen Artikel

Praktische nächste Schritte

Jetzt hast du die Theorie im Kopf. Aber Wissen bringt nichts ohne Handeln. Setz dich an deinen Rechner und probiere es aus. Es kann nichts kaputtgehen.

  1. Installiere Docker auf deinem System. Wenn du Windows nutzt, nimm Docker Desktop und achte darauf, dass WSL2 aktiviert ist.
  2. Öffne dein Terminal und tippe docker run -it ubuntu. Schau dir die Ausgabe genau an.
  3. Versuche, ein Programm zu installieren, zum Beispiel figlet. Tippe apt update && apt install -y figlet. Dann führ es aus mit figlet Hallo Welt.
  4. Beende den Container mit exit.
  5. Starte einen neuen Container mit dem gleichen Befehl wie in Schritt 2. Tippe figlet. Du wirst sehen: Es ist weg. Das lehrt dich das Prinzip der Unveränderlichkeit.
  6. Erstelle ein eigenes Dockerfile. Schreibe FROM ubuntu und in die nächste Zeile RUN apt update && apt install -y git.
  7. Baue dein Image mit docker build -t mein-ubuntu . und starte es. Jetzt ist git dauerhaft in deinem eigenen Abbild vorhanden.

Diese Schritte führen dich von der Theorie zur Praxis. Der Lerneffekt ist riesig, sobald man die ersten eigenen Fehler macht und sie behebt. Docker ist ein mächtiges Werkzeug. Es verändert die Art, wie wir über Computer und Software denken. Ubuntu ist dabei dein verlässlicher Begleiter. Fang einfach an. Der Rest kommt beim Machen.

MN

Markus Neumann

Mit Erfahrung in Newsrooms und Content-Teams erstellt Markus Neumann verständliche, gut recherchierte Beiträge.