Docker Cheat Sheet

Einige häufig verwendete Parameter von Docker-Befehlen

Inhaltsverzeichnis

Hier ist ein Docker-Referenzblatt, das die wichtigsten Befehle und Konzepte von der Installation bis zum Ausführen von Containern und der Bereinigung abdeckt:

docker logo

Dieser Leitfaden ist Teil des Entwicklertools: Der komplette Leitfaden für moderne Entwicklungsworkflows.

Installation

Für einen vollständigen Leitfaden zur Installation von Docker auf Ubuntu — unter Vergleich des offiziellen APT-Repositories, docker.io, Snap, des rootless-Modus und der Einrichtung des Compose-Plugins — siehe Docker auf Ubuntu installieren.

Fügen Sie nach der Installation Ihren Benutzer zur docker-Gruppe hinzu, wenn Sie Befehle ohne sudo ausführen müssen:

sudo usermod -aG docker $USER
newgrp docker
docker run hello-world

Der Installationsleitfaden behandelt auch den Sicherheitskompromiss der docker-Gruppenmitgliedschaft und rootless-Alternativen.

Allgemeine Docker-Befehle

Version und Systeminformationen

docker version          # Zeigt Docker-CLI- und Daemon-Versionen an
docker system info      # Listet Daten über Ihre Docker-Umgebung auf
docker help             # Zeigt den Hilfeindex an
docker <command> --help # Zeigt Hilfeinformationen für einen bestimmten Befehl an

Anmelden und Abmelden

docker login            # Bei Docker Hub anmelden
docker logout           # Von Docker Hub abmelden

Bildverwaltung

Bilder auflisten

docker images           # Alle Bilder auflisten
docker images -a        # Alle Bilder auflisten, einschließlich Zwischenversionen

Bilder laden

docker pull <image-name:version> # Ein Bild von Docker Hub herunterladen

Bilder erstellen

docker build -t <image-name> . # Ein Bild aus dem Dockerfile des aktuellen Verzeichnisses erstellen
docker build -f <Dockerfile-path> -t <image-name> . # Ein Bild aus einem bestimmten Dockerfile erstellen
docker build --build-arg foo=bar . # Ein Bild mit Build-Argumenten erstellen
docker build --pull . # Aktualisierte Versionen der in FROM-Anweisungen referenzierten Bilder laden
docker build --quiet . # Ein Bild erstellen, ohne Ausgabe zu erzeugen

Bilder taggen und pushen

docker tag <local-image-name> <username>/<preferred-image-name>
docker push <username>/<preferred-image-name>

Bilder entfernen

docker rmi <image-name>        # Ein bestimmtes Bild entfernen
docker image prune             # Nicht verwendete Bilder entfernen
docker image prune -a          # Alle nicht verwendeten Bilder entfernen

Schwebende (dangling) Bilder entfernen

docker rmi $(docker images --filter "dangling=true" -q --no-trunc)

Bild enttaggen

docker rmi repository/image-name:tag

Containerverwaltung

Container ausführen

docker run -itd --name <container-name> <image-name> # Einen Container im detached-Modus ausführen
docker run -it -p <host-port>:<docker-port> <image-name> # Einen Container mit Port-Mapping ausführen
docker run -it --name <container-name> <image-name> # Einen Container interaktiv ausführen

Container auflisten

docker ps                  # Ausgeführte Container auflisten
docker ps -a               # Alle Container auflisten
docker ps -s               # Ausgeführte Container mit CPU- und Speicherverbrauch auflisten

Container starten, stoppen und neu starten

docker start <container-name>   # Einen gestoppten Container starten
docker stop <container-name>    # Einen laufenden Container stoppen
docker restart <container-name> # Einen Container neu starten

Container entfernen

docker rm <container-name>      # Einen gestoppten Container entfernen
docker rm -f <container-name>   # Einen Container gewaltsam entfernen
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q) # Alle Container entfernen

Alle gestoppten Container entfernen

docker container prune

An Container anhängen

docker attach <container-name>  # An einen laufenden Container anhängen
docker exec -it <container-name> bash # Einen Befehl in einem laufenden Container interaktiv ausführen

Container untersuchen

docker inspect <container-name> # Einen Container untersuchen
docker logs <container-name>    # Protokolle eines Containers anzeigen
docker port <container-name>    # Port-Mappings eines Containers anzeigen

Netzwerkverwaltung

docker network ls            # Alle Netzwerke auflisten
docker network create <network-name> # Ein neues Netzwerk erstellen
docker network rm <network-name>    # Ein Netzwerk entfernen

Volumenverwaltung

docker volume ls             # Alle Volumes auflisten
docker volume create <volume-name> # Ein neues Volume erstellen
docker volume rm <volume-name>    # Ein Volume entfernen
docker run -v <host-path>:<container-path> <image-name> # Ein Volume mounten

Docker Compose

Für Multi-Container-Stacks und tägliche Compose-Befehle siehe das Docker Compose Referenzblatt. Wenn ein Compose-Projekt beim Boot starten und Neustarts auf einem Linux-Server überstehen soll, behandelt Docker Compose als Linux-Service mit systemd ausführen Unit-Dateien und operative Gewohnheiten.

Basisbefehle

docker-compose up           # Dienste starten, die in docker-compose.yml definiert sind
docker-compose up -d        # Dienste im detached-Modus starten
docker-compose down         # Dienste stoppen und entfernen
docker-compose ps           # Ausgeführte Dienste auflisten
docker-compose logs         # Protokolle der Dienste anzeigen
docker-compose start        # Dienste starten
docker-compose stop         # Dienste stoppen
docker-compose pause        # Dienste pausieren
docker-compose unpause      # Dienste fortsetzen

Dockerfile-Befehle

Bild aus Dockerfile erstellen

docker build -t <image-name> <Dockerfile-path> # Ein Bild aus einem Dockerfile erstellen

Beispiel-Dockerfile

FROM <base-image>
RUN <command>
COPY <source> <destination>
EXPOSE <port>
CMD ["<command>", "<argument>"]

Sicherheit und Secrets

Docker Secrets

docker secret create <secret-name> <file> # Ein Secret erstellen
docker secret ls                         # Alle Secrets auflisten
docker secret rm <secret-name>          # Ein Secret entfernen

Docker-Sicherheit

  • Verwenden Sie Docker Secrets, um sensible Daten zentral zu verwalten und sicher an Container zu übermitteln.
  • Secrets werden während der Übertragung und im Ruhezustand in einem Docker Swarm verschlüsselt.

Bereinigung

Nicht verwendete Ressourcen entfernen

docker system prune          # Nicht verwendete Daten entfernen (Bilder, Container, Netzwerke, Volumes)
docker image prune           # Nicht verwendete Bilder entfernen
docker container prune       # Nicht verwendete Container entfernen
docker network prune         # Nicht verwendete Netzwerke entfernen
docker volume prune          # Nicht verwendete Volumes entfernen

Nicht getaggte Bilder entfernen

Manchmal gibt es nach einer großen erfolgreichen Kompilierung ein Bild wie dieses vom docker images-Befehl:

lot of untagged images

Um diese Bilder mit Tags zu entfernen:

docker rmi $(docker images --filter “dangling=true” -q --no-trunc)

Das Obige ist alt und inkompatibel. Der Parameter dangling=true ist veraltet. Verwenden Sie stattdessen:

docker system prune

Es wird gefragt:

WARNING! This will remove:
	- all stopped containers
	- all volumes not used by at least one container
	- all networks not used by at least one container
	- all dangling images

Sie können entscheiden, dieser Warnung mit Ja zu antworten…

Dieses Referenzblatt deckt die wesentlichen Befehle und Konzepte ab, die zum Verwalten von Docker-Containern, Bildern, Netzwerken, Volumes und mehr benötigt werden. Für eine tiefere Einarbeitung verweisen Sie auf die detaillierten Leitfäden und Tutorials, die online verfügbar sind.

Abonnieren

Neue Beiträge zu Systemen, Infrastruktur und KI-Engineering.