Wähle einen Artikel
Docker auf vServer/VPS installieren
Docker auf vServer/VPS installieren

VPS von dogado - gehostet in Deutschland

Behalte die Kontrolle über deinen vServer/VPS und steuere deine Online-Präsenz souverän. Profitiere von Hochgeschwindigkeits-NVME-SSDs, die bis zu 6-mal schneller sind als herkömmliche.

Server-Racks mit blauer Beleuchtung, Frontpaneele mit Laufwerkschächten, Lüftungsgitter und Netzwerkausrüstung.

Was ist Docker?

Docker ist die am weitesten verbreitete Container Technologie. Docker punktet durch seine Einfachheit und ermöglicht es, schnell neue Dienste (z.B. Webserver, Datenbanken) bereitzustellen. Diese lassen sich sowohl in Test-Umgebungen als auch produktiv einsetzen. Durch seine Vielseitigkeit und die vielen vorgefertigten Images wurde Docker sehr beliebt. Docker ist im Vergleich zur Virtualisierung (Virtuelle Maschinen) einfacher zu replizieren, schneller aufzusetzen und besser zu skalieren. Im Laufe dieser Anleitungen werden wir euch die Einfachheit und enormen Funktionsumfang von Docker zeigen. 

Docker Images und Container 

Bei Docker werden häufig die Begriffe „Image“ und „Container“ verwendet. Diese sollen hier nun etwas erklärt werden. 

Der Startpunkt jedes Docker Containers ist immer ein Image. Im Gegensatz zu Virtuellen Maschinen (VMs) ist ein Image keine „virtuelle Festplatte“, welche alle Daten inklusive des Betriebssystems enthält. Bei Docker ist ein Image ein „Read-Only“ Dateisystem („nur Lesen“), welches die Basis für den späteren Container bildet. Dies bedeutet, dass anders als bei virtuellen Maschinen (VMs) das Docker Image nie verändert wird. Werden innerhalb des Containers neue Dateien hinzugefügt oder verändert, so werden diese nicht im Image verändert, sondern in einem sogenannten „Overlay-Dateisystem“, welches auf dem Docker Host innerhalb eines Verzeichnisses abgebildet wird. 

Dadurch, dass Images nie verändert werden, können von einem Image beliebig viele Container erstellt und gleichzeitig gestartet werden. Ein Container ist also die „aktuelle ausgeführte Instanz“ eines Images. Im Gegensatz zu einem Image, welches nur Speicherplatz belegt, nutzt ein Container auch die Ressourcen CPU und Arbeitsspeicher.  

Aufgrund der hohen Beliebtheit von Docker kann man im Internet sehr viele Anwendungen schon als fertiges Image bekommen. Derzeit gibt es auf dem Docker Hub (https://hub.docker.com) mehr als 13 Millionen verschiedene Images zum Download. Die meisten dieser Images sind kostenlos zugänglich. Viele Images sind sogar von den offiziellen Herstellern erstellt und auch als solche gekennzeichnet.  

Ihr könnt euch auch mit einem einfachen Texteditor selbst „Dockerfile“ erstellen, welche später zu einem Image umgewandelt werden können. 

Vorteile von Docker 

Docker bietet viele Vorteile, weshalb es auch in Unternehmen gerne genutzt wird. Hier eine kurze Vorstellung einiger Kriterien: 

  • Ressourcenschonend 

Container sind viel ressourcenschonender als virtuelle Maschinen (VMs). Docker Container teilen sich den Kernel des Wirtssystems und sind daher viel kleiner. So ist das bei Docker beliebte Linux System „Alpine Linux“ gerade mal ca. 5 MB groß und dient als Grundlage für viele Container. Durch Docker ist es auch problemlos möglich, dass auf einem Server mehrere Container gleichzeitig laufen können. 

  • Skalierbarkeit 

Da alle Container identisch sind und beliebig oft aus demselben Image aus erstellt werden können, kann man bei Bedarf schnell neue Server hinzufügen und die Anwendung bereitstellen. Hierzu werden die Programme Docker Swarm sowie Kubernetes genutzt. Diese nutzen Docker als Grundlage. 

  • Bereitstellungszeit 

Da die Docker Container mittels Images erstellt werden, dauert es nur wenige Sekunden, bis ein Container bereit ist und genutzt werden kann. Es müssen zudem keine Änderungen an dem Wirtsbetriebssystem durchgeführt werden. Docker Images lassen sich beliebig mit wenigen Textzeilen an die eigenen Bedürfnisse in kürzester Zeit anpassen. 

  • Updates 

Durch Docker ist es möglich sehr schnell Updates durchzuführen. Dazu reicht es in der Regel den Befehl „docker compose pull“ einzugeben, damit neuere Versionen der Images heruntergeladen werden. Anschließend können diese dann gestartet werden. Ein Rollback ist ebenfalls schnell möglich, da ihr auch auf bestimmte Versionsnummer springen könnt. 

  • Trennung zwischen den Containern 

Docker ermöglicht eine klare Trennung zwischen einzelnen Containern. Dies ist sehr nützlich, wenn zum Beispiel eine Anwendung PHP 8.x benötigt, eine andere Anwendung aber PHP 7.x. Auf einer einzigen VM wäre beides zusammen nur schwer realisierbar. Bei Docker stellt dies kein Problem dar. 

Docker installieren

Docker lässt sich auf diversen Systemen sehr schnell installieren. Es werden die großen Linux Distributionen wie Debian, CentOS, Ubuntu und Fedora unterstützt sowie Windows und MacOS. 

Auf der Homepage des Herstellers gibt es genaue Anleitungen für die einzelnen Systeme.

Docker installieren unter Debian 13

In der Regel wird Docker auf einem Server ohne grafische Oberfläche installiert. Daher führen wir alle Befehle in der Konsole (Shell) aus.  

Alle nachfolgenden Befehle führen wir als „root“ aus. Zum Benutzer „root“ wechselt ihr mit folgendem Befehl: 

sudo -i

Gebt nun als „root“ folgende Befehle ein: 

apt update 

apt install -y ca-certificates curl 

install -m 0755 -d /etc/apt/keyrings 

curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc 

chmod a+r /etc/apt/keyrings/docker.asc 

 

tee /etc/apt/sources.list.d/docker.sources <<EOF 

Types: deb 

URIs: https://download.docker.com/linux/debian 

Suites: $(. /etc/os-release && echo "$VERSION_CODENAME") 

Components: stable 

Architectures: $(dpkg --print-architecture) 

Signed-By: /etc/apt/keyrings/docker.asc 

EOF 

apt update 

Nachdem ihr diese Befehle ausgeführt habt, können wir mit der eigentlichen Installation von Docker beginnen. Dazu gebt ihr folgendes ein: 

apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Nun können wir testen, ob die Installation erfolgreich war. Gebt dazu folgendes ein: 

docker compose version 

docker version 

docker run --rm hello-world

Nun wird das Image „hello-world“ heruntergeladen und ihr solltet anschließend folgendes sehen: 

Screenshot eines Terminalfensters mit Docker-Informationen: Docker-Versionen (Client/Server), Build-IDs und Daemon-Hinweis.

Hier sehen wir die genaue Versionsnummer von Docker und Docker Compose. Ebenfalls konnte das Docker Image korrekt heruntergeladen und gestartet werden. 

Daten dauerhaft speichern 

Wie bereits in Kapitel 2 erklärt, startet Docker Container, welche aus Images bestehen. Diese Container können während des Betriebs verändert bzw. erweitert werden. Dies können zum Beispiel neue Einträge in einer Datenbank oder neue Dateien sein. Wird ein Container dann gelöscht, so sind alle darin enthaltenen Daten verloren. Dies passiert zum Beispiel beim Update eines Containers. Dort wird der Container gestoppt, gelöscht und anschließend aus dem neuen Image neu erstellt. 

Named Volumes 

Diese Named Volumes werden von Docker selbst verwaltet und dienen als fester Speicher. Docker kann sie je nach Konfiguration selbst anlegen und verwalten. Mit folgendem Befehl könnt ihr ein Volume selbst anlegen: 

docker volume create db_data 

Dieses Volume übersteht den Neustart von Containern. So wird es zum Beispiel möglich, dass eine Datenbank ihre Daten behält, auch nach einem Update. Hier ein Beispielcode, welcher die Einbindung dieses Volumes zeigt: 

docker run -d --name db \ 

  -e MARIADB_ROOT_PASSWORD=geheim \ 

  -v db_data:/var/lib/mysql \ 

  mariadb:11 

Durch den Einsatz vieler Container kann es dazu kommen, dass ihr nach kurzer Zeit sehr viele Volumes auf eurem Server habt. Mit folgendem Befehl könnt ihr euch einen Überblick über die Volumes verschaffen: 

docker volume ls 

 Wenn ihr genauere Informationen zu einem Volume (zum Beispiel „db_data“ aus dem Beispiel) erfahren wollt, so gebt ihr nachfolgenden Befehl ein: 

docker volume inspect db_data 

So erfährt ihr unter anderem auch den genauen Pfad, wo das Volume auf eurem Server gespeichert ist. 

Terminal zeigt docker volume inspect db_data als JSON mit CreatedAt, Driver, Labels, Mountpoint, Name, Options, Scope.

Volumes löschen ist ebenfalls möglich. Dazu gebt ihr einfach folgendes ein: 

docker volume rm db_data 

Bind Mounts 

Die zweite Möglichkeit sind Bind Mounts. Bei dieser Möglichkeit gebt ihr ein spezifisches Verzeichnis an, in welches der Container die Daten speichern soll. Dazu hier ein Beispiel: 

docker run -d --name webserver \ 
  -p 8080:80 \ 
  -v /opt/containers/webserver/html:/usr/share/nginx/html \ 
  nginx:alpine 

Alle Daten, die der Container also intern unter „/usr/share/nginx/html“ sieht, liegen auf unserem Server im Verzeichnis „/opt/containers/webserver/html“. So ist es für Administratoren sehr einfach Konfigurationsdateien, HTML Webseiten oder ähnliches von Hand auszutauschen. 

Unterschiede der beiden Varianten 

Beide Varianten haben ihre Vor- und Nachteile. Wenn ihr die Mounts selbst verwalten wollt, Ordner im konkreten Dateipfad einbinden oder öfters Dateien austauschen wollt, so eignen sich Bind Mounts besser. Wenn der Fokus aber auf einer einfachen Verwaltung sowie Rechtemanagement durch Docker selbst liegt, so kommen eher Named Volumes in Frage. 

Docker Compose 

Mit Docker selbst könnt ihr immer nur einen Container einrichten. Dies funktioniert zwar, aber ist sehr aufwendig, wenn ihr beispielsweise 6 Container für eine Anwendung benötigt. Hier hilft euch Docker Compose. Dies haben wir in dieser Anleitung bereits zusammen mit Docker installiert. Grundlage bildet eine „docker-compose.yml“ Datei im aktuellen Verzeichnis, welche alle Informationen enthält. Darin ist beispielsweise festgeschrieben, welche Container gestartet, welche Parameter übergeben und über welches Netzwerk kommuniziert werden soll. Alle Anleitungen bei dogado nutzen Docker Compose, da für die meisten Projekte immer mehrere Docker Container benötigt werden. So lässt sich dann beispielsweise ein kompletter E-Mail-Server mit dem Befehl „docker compose up“ starten. 

Docker Hub 

Docker Hub ist eine Plattform, welche euch über 13 Millionen Docker Images zur Verfügung stellt. Neben vielen offiziellen Images der Hersteller finden sich dort auch viele Images, die durch einzelne Community Mitglieder erstellt und gewartet werden. Grundsätzlich kann sich jeder bei Docker Hub kostenfrei registrieren und seine eigenen Images für alle zur Verfügung stellen. Zum Downloaden der Images wird kein Account benötigt. Möchte man jedoch mehrere private Repositorien erstellen (nur freigegebene Mitglieder sichtbar) so muss man ein Abo (https://www.docker.com/pricing) abschließen.  

Docker Hub bietet dem Nutzer eine gute Suchfunktion und viele Kategorien zur Sortierung an. Dies hilft enorm, sich einen Überblick zu verschaffen. 

Übersichtsseite mit drei blauen Bannern oben und darunter Karten mit Logos wie TensorFlow, PyTorch, LangChain, Python.

Jedes Image hat im Docker Hub eine „eigene Seite“. Hier kann man sich informieren, welche Versionen bereitgestellt werden und auf was geachtet werden muss. 

GitHub-Seite eines Repos: Profilbild, Titel ai/qwen3, Verified Publisher; Tabs Overview/Tags; rechte Sidebar mit Tagzusammenfassung.

Docker Anwendungsbeispiele 

Innerhalb dieses Tutorials stellen wir mehr als 60 Anleitungen bereit. Alle diese Anleitungen sind kostenlos und auf ihre Funktion geprüft. Regelmäßig kommen noch Anleitungen zu weiteren spannenden Themen hinzu.

Alle Anleitungen im Detail vorzustellen, würde den Rahmen sprengen. Daher hier eine kurze Vorstellung einiger Anleitungen: 

Die Anleitungen selbst sind so aufgebaut, dass ihr einen kurzen Überblick bekommt, was euch erwartet und ihr dann einfach den entsprechenden Code kopieren könnt. So könnt ihr in kürzester Zeit zum Docker Administrator werden. 

VPS von dogado - gehostet in Deutschland

Behalte die Kontrolle über deinen vServer/VPS und steuere deine Online-Präsenz souverän. Profitiere von Hochgeschwindigkeits-NVME-SSDs, die bis zu 6-mal schneller sind als herkömmliche.

Server-Racks mit blauer Beleuchtung, Frontpaneele mit Laufwerkschächten, Lüftungsgitter und Netzwerkausrüstung.
Nächster Artikel
DokuWiki per Docker auf VPS installieren
Weitere passende Themen