Docker ist eine schlanke Lösung, um Anwendungen plattformübergreifend bereitzustellen. Die Container enthalten alle nötigen Pakete und lassen sich deshalb leicht transportieren und installieren. Aber wie sieht die Arbeit von Systemadministratoren und Entwicklern mit Docker konkret aus? Im folgenden Artikel wird es praktisch: Wir haben einige der wichtigsten Befehle für Docker Images, Docker Container und Docker Volumes zusammengestellt.
Docker Image vs. Container
Bevor es mit den Befehlen losgeht, müssen wir uns an den Unterschied zwischen Docker Images und Docker Containern erinnern. Ein Docker Image besteht aus einer Docker Datei und allen erforderlichen Abhängigkeiten. Ein Docker Container ist, etwas vereinfacht ausgedrückt, ein gestartetes Docker Image. Allerdings können zu jedem Image mehrere Container laufen. Diese Unterscheidung ist wichtig, um zu wissen, welche Befehle in die Kommandozeile, das Command Line Interface (CLI), eingegeben werden müssen.
Geht Ihnen das zu schnell? Dann finden Sie hier nützliche Informationen zum Einstieg in Docker.
Die Struktur der Docker Kommandos
Die allgemeine Struktur von Befehlen in Docker sieht wie folgt aus:
- Sie beginnen immer mit „docker“, gefolgt von einem Leerzeichen.
- Dann kommt die Management-Kategorie, ebenfalls gefolgt von einem Leerzeichen.
- Und schließlich folgt der eigentliche Befehl.
Ein simples Beispiel: „docker container stop“ stoppt einen Container. Soll sich Ihr Befehl auf einen bestimmten Container beziehen, müssen Sie dessen Bezeichnung bzw. ID angeben: „docker container run topapp“ startet einen Container, der „topapp“ heißt.
In Docker unterscheiden sich die Befehle für Container und Images zum Teil. Sie folgen insgesamt aber derselben Struktur: Befehle für Images lauten „docker image [Befehl]“, jene für Container „docker container [Befehl]“.
Befehle für Docker Images
Bei Images folgt nach „docker image“ der jeweilige Befehl. Hier eine Übersicht über die wichtigsten Kommandos:
- build – Erstellt ein Image.
- push – Schiebt ein Image auf eine Remoteregistrierung.
- pull – Zieht ein Image oder ein Repository von einer Registry.
- ls – Listet alle vorhandenen Images auf.
- history – Zeigt alle Informationen eines Intermediate Image an.
- inspect – Zeigt detaillierte Informationen zu einem Image an, inkl. den einzelnen Layern.
- rmi – Löscht ein Image.
Befehle für Docker Container
Analog zu den Befehlen für Docker Images sind die Kommandos für Docker Container aufgebaut: Nach „docker container“ folgt der jeweilige Befehl. Hier sind die wichtigsten:
- create – Erstellt einen Container aus einem Image.
- start – Startet einen existierenden Container.
- run — Erstellt einen neuen Container und startet ihn.
- ls – Listet alle laufenden Container auf.
- inspect – Zeigt detaillierte Informationen über einen Container an.
- logs – Druckt logs aus.
- stop – Stoppt einen laufenden Container.
- kill – Stoppt den Hauptprozess in einem Container abrupt.
- rm – Löscht einen gestoppten Container.
Weitere nützliche Docker Befehle
Ergänzend dazu sind die folgenden Befehle nützlich:
- docker version – Zeigt die Docker Version von Echo-Client und Server an.
- docker images – Listet alle Docker Images auf.
- docker save <path> <image> – Speichert ein Docker Image in eine .tar-Datei, die durch „path“ näher spezifiziert ist.
- docker export – Exportiert das Dateisystem eines Containers als tar-Archiv.
- docker exec – Führt einen Befehl in einem laufenden Container aus.
- docker ps -a – Zeigt alle Container an (das -a steht für das Flag –all).
- docker ps -l – Zeigt den letzten erstellten Container an.
- docker search – Durchsucht das Docker Hub nach Images.
- docker attach – Hängt etwas an einen laufenden Container an.
- docker commit – Erstellt ein neues Image mit den Änderungen, die an einem Container vorgenommen worden sind.
Übrigens: Mit docker -help lässt sich eine Liste mit den am häufigsten verwendeten Kommandos anzeigen.
Befehle für Docker Volumes
Schauen wir uns nun Befehle für Docker Volumes an. Zur Erinnerung: Volumes dienen dazu, dass Container das Union-Dateisystem umgehen können. Sie werden gestartet, sobald ein Container erstellt wird und stellen Funktionen bereit, die es unter anderem ermöglichen, Dateien zu teilen. Darüber hinaus verfügt jedes Volume über einen Mount Point.
Wichtig zu wissen: Jedes Volume kann von mehreren Container verwendet werden. Üblicherweise werden Volumes erstellt, um Logs und Cache zu verwalten.
Die Option -v erstellt beispielsweise ein neues Volume und fügt es einem Container hinzu. Das ist insbesondere dann praktisch, wenn eine Anwendung Daten enthält, die in einen anderen Container gemounted werden sollen. Und falls Sie den aktuellen Container löschen, bleiben die im Volume gespeicherten Dateien verfügbar. Sie lassen sich dann an den nächsten Container anhängen.
Auch für Volumes gelten folgende Befehle zum Auflisten, Erstellen und Löschen:
- docker volume ls
- docker volume create
- docker volume rm
Ebenso wichtig wie die grundlegenden Befehle ist es, die Performance der Container kontinuierlich zu überwachen.
Kommandos ausprobieren und auswendig lernen
Die Aufstellung der Befehle für Docker Images, Container und Volumes ist natürlich keinesfalls vollständig. Sie dient lediglich dazu, sich mit den grundlegenden Befehlen in Docker vertraut zu machen. Diese lassen sich auch immer wieder nachschlagen, bis Sie sie auswendig kennen. Probieren Sie die Befehle doch ruhig einmal aus.
Für den sicheren Umgang mit Docker sollten Sie sich darüber hinaus mit den Features Network und Links beschäftigen. Sie dienen dazu, Container zu verbinden. So können Anwendungen untereinander kommunizieren, etwa Docker mit MySQL oder Vault.
Übrigens: Es existieren zahlreiche Video-Ressourcen für Einsteiger und Fortgeschrittene. Dort finden Sie weitere nützliche Tipps & Tricks rund um Docker und Container.
Titelmotiv: Photo by hannah joshua on Unsplash
- PDF-Dokumente digital signieren: Unterschreiben mit Adobe Acrobat & Co. - 4. August 2023
- HTTPS-Verschlüsselung und SSL-Zertifikat: Wo liegt der Unterschied? - 16. Juli 2023
- Virtual-Server-Migration: So minimieren Sie den Aufwand - 6. Juli 2023