Mit Docker kannst Du Anwendungen in isolierten Containern ausführen, die unabhängig von der Umgebung laufen und reproduzierbare Ergebnisse liefern. Docker-Images dienen als Basis für Container und enthalten alle Abhängigkeiten einer Anwendung.
Durch die Nutzung der hier vorgestellten Docker-Kommandos kannst Du Container starten, stoppen, überwachen und verwalten und somit die volle Kontrolle über Deine Docker-Umgebung behalten.
Docker ist ein mächtiges Werkzeug, das Anwendungen in sogenannten Containern isoliert und sie unabhängig von der zugrunde liegenden Infrastruktur ausführt. Container sind leichtgewichtige, portable Einheiten, die es ermöglichen, Anwendungen mit allen ihren Abhängigkeiten konsistent auszuführen. Im folgenden Tutorial erfährst Du, was Docker-Container und Images sind, und lernst grundlegende Docker-Kommandos zur Verwaltung von Containern kennen.
Ein Container ist eine isolierte Umgebung, in der eine Anwendung und all ihre Abhängigkeiten ausgeführt werden können. Container basieren auf Docker-Images, die wie Vorlagen oder Blaupausen für den Container funktionieren. Ein Image enthält alles, was für die Ausführung der Anwendung benötigt wird, einschließlich des Betriebssystems, der Bibliotheken und der Anwendungsdateien.
Durch das Starten eines Containers aus einem Image wird eine Instanz der Anwendung erstellt, die unabhängig von anderen Containern und von der Umgebung des Host-Systems läuft. Container sind somit eine ideale Lösung für konsistente und portable Anwendungen.
Um einen Docker-Container zu starten, kannst Du den Befehl docker container run
verwenden. Hier ist ein einfaches Beispiel, um einen NGINX-Webserver auf Port 8000 des Hosts auszuführen:
docker container run --publish 8000:80 nginx
Dieser Befehl startet einen neuen Container aus dem NGINX-Image und verbindet den Port 8000 des Hosts mit dem Port 80 im Container, auf dem der Webserver läuft. Die Option --publish
(oder -p
) ermöglicht die Zuordnung der Ports zwischen Host und Container.
Um einen Container im Hintergrund laufen zu lassen, verwende die Option -d
(für detached). Hier ist ein Beispiel, bei dem eine bestimmte Version von NGINX (1.11) im Hintergrund ausgeführt wird. Die Option -T
gibt außerdem die Konfiguration von NGINX im Terminal aus:
docker container run --publish 8000:80 -d nginx:1.11 nginx -T
Hier wird der Container basierend auf der Version 1.11 des NGINX-Images im Hintergrund ausgeführt. Der Container gibt zusätzlich die NGINX-Konfiguration auf der Konsole aus.
Um einen gestarteten Container zu stoppen, verwende docker container stop
. Gib die Container-ID oder den Container-Namen an, um den gewünschten Container zu stoppen:
docker container stop <CONTAINER_ID>
Zum Starten eines gestoppten Containers kannst Du docker container start
verwenden:
docker container start <CONTAINER_ID>
Diese Kommandos ermöglichen es Dir, einen Container bei Bedarf anzuhalten und später wieder zu starten.
Um die aktiven Prozesse in einem laufenden Container zu sehen, verwende docker container top
:
docker container top <CONTAINER_ID>
Dieser Befehl zeigt die aktuell laufenden Prozesse im Container an und ist nützlich, um zu überprüfen, ob die Anwendung wie gewünscht ausgeführt wird.
Docker bietet mit docker container stats
die Möglichkeit, den Ressourcenverbrauch eines oder mehrerer Container zu überwachen. Der Befehl zeigt Informationen wie CPU- und Speicherauslastung in Echtzeit an:
docker container stats <CONTAINER_ID>
Dieser Befehl ist besonders hilfreich zur Überwachung der Performance und zur Identifikation von Containern, die möglicherweise zu viel Speicher oder CPU verbrauchen.
Um die Logs eines Containers zu sehen, verwende den Befehl docker container logs
. Dies ist nützlich, um Fehler oder Ausgaben der Anwendung zu überprüfen:
docker container logs <CONTAINER_ID>
Mit diesem Befehl kannst Du die Ausgabe des Containers einsehen, als würdest Du direkt auf das Terminal des Containers zugreifen.
In Docker kannst Du ein Image direkt aus einem laufenden Container erstellen. Dadurch lassen sich Änderungen, die Du in einem Container vorgenommen hast, in ein neues Image übernehmen und wiederverwenden. Hier zeigen wir Dir, wie Du ein Docker-Image aus einem Container mit NGINX erstellst.
Starte einen Container mit NGINX und führe darin alle gewünschten Anpassungen durch. Zum Beispiel kannst Du den Container starten und Dich in die Shell des Containers begeben, um Anpassungen vorzunehmen.
docker container run -d --name mein_nginx_container nginx
In diesem Beispiel startet ein neuer NGINX-Container im Hintergrund und erhält den Namen mein_nginx_container
.
Falls Du Anpassungen direkt im Container vornehmen möchtest, öffne die Shell:
docker exec -it mein_nginx_container /bin/bash
Du kannst nun Änderungen vornehmen, wie z. B. die Konfiguration von NGINX anpassen, neue Dateien hinzufügen oder vorhandene bearbeiten.
Nachdem Du die gewünschten Anpassungen im Container vorgenommen hast, kannst Du daraus ein Image erstellen. Der Befehl docker commit
speichert den Zustand des Containers als Image.
docker commit mein_nginx_container mein_nginx_image
In diesem Beispiel erstellt Docker ein neues Image namens mein_nginx_image
, das auf dem aktuellen Zustand von mein_nginx_container
basiert.
Nachdem Du das Image erstellt hast, kannst Du prüfen, ob es in Deiner Liste der Docker-Images vorhanden ist.
docker images
Das neue Image mein_nginx_image
sollte jetzt in der Liste erscheinen. Es ist eine Kopie des ursprünglichen Containers, einschließlich aller Anpassungen, die Du darin vorgenommen hast.
Um sicherzustellen, dass das Image wie erwartet funktioniert, kannst Du daraus einen neuen Container starten und die Konfiguration überprüfen.
docker container run -d --name test_nginx_container mein_nginx_image
Dieser Befehl startet einen neuen Container namens test_nginx_container
basierend auf dem erstellten Image mein_nginx_image
. Überprüfe, ob Deine Anpassungen wie erwartet übernommen wurden, indem Du auf den Container zugreifst oder die NGINX-Konfiguration testest.
Ein häufig verwendeter Ansatz zum Erstellen eines Docker-Images besteht darin, ein Dockerfile
zu schreiben, das die Konfiguration definiert. Dies ist die bevorzugte Methode, da sie wiederholbare Builds und eine bessere Versionierung ermöglicht. Ein einfaches Dockerfile für einen NGINX-Server könnte so aussehen:
# Verwende das Basis-Image nginx
FROM nginx:latest
# Kopiere eine benutzerdefinierte Konfigurationsdatei in den Container
COPY nginx.conf /etc/nginx/nginx.conf
# Exponiere den NGINX-Port
EXPOSE 80
Erstelle ein Image aus diesem Dockerfile:
docker build -t custom_nginx_image .
Ein Dockerfile ist eine flexible und empfehlenswerte Methode für das Image-Building, da es den Build-Prozess automatisiert und leicht versionierbar macht.
Finden Sie interessante und zum Thema passende Kurse
In diesem Seminar lernen Sie, was Container sind, wie Sie sie erstellen und verwalten und wie Sie Docker in Ihren Projekten nutzen können. Ziel ist es, Docker von Grund auf zu verstehen und in realen Projekten anwenden zu können.
2 Tage Vollzeit Online
Nächster Termin: 16. Dezember 2024
Preis pro Person: 900,00 EUR
Rabattaktion: 3 für den Preis von 2!
In unserem 3-Tages Git & GitHub Einführungskurs erlernen Sie den effektiven Umgang mit Git und GitHub, der führenden Plattform für Versionskontrolle und Kollaboration. Von den ersten Commits bis zu fortgeschrittenen Branching-Strategien und Pull Requests bietet der Kurs eine umfassende Einführung. Sie werden praxisnah GitHub-Workflows anwenden, Merges und Konflikte lösen sowie Releases verwalten. Hands-on Aufgaben vertiefen Ihr Wissen und bereiten Sie darauf vor, Git und GitHub sicher in Ihren Projekten einzusetzen. Dieser Kurs richtet sich sowohl an Einsteiger als auch an Entwickler, die ihre GitHub-Kenntnisse erweitern möchten.
3 Tage Vollzeit Online
Nächster Termin: 24. März 2025
Preis pro Person: 1200,00 EUR
Rabattaktion: 3 für den Preis von 2!