Docker-Kurztaste

Häufig verwendete Docker-Befehlsparameter

Inhaltsverzeichnis

Hier ist ein Docker Cheat Sheet, der die wichtigsten Befehle und Konzepte von der Installation bis zum Laufen von Containern und Bereinigen abdeckt:

docker logo

Installation

Auf Ubuntu

sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
sudo apt install docker-ce
sudo systemctl start docker

Docker Compose Installation

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version

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 Hilfinformationen für einen bestimmten Befehl an

Anmeldung und Abmeldung

docker login            # Anmeldung bei Docker Hub
docker logout           # Abmeldung von Docker Hub

Image-Management

Bilder auflisten

docker images           # Listet alle Bilder auf
docker images -a        # Listet alle Bilder auf, einschließlich Zwischenbilder

Bilder herunterladen

docker pull <image-name:version> # Lädt ein Bild von Docker Hub herunter

Bilder erstellen

docker build -t <image-name> . # Erstellt ein Bild aus der Dockerfile im aktuellen Verzeichnis
docker build -f <Dockerfile-path> -t <image-name> . # Erstellt ein Bild aus einer bestimmten Dockerfile
docker build --build-arg foo=bar . # Erstellt ein Bild mit Build-Argumenten
docker build --pull . # Lädt aktualisierte Versionen der in FROM-Anweisungen verwendeten Bilder herunter
docker build --quiet . # Erstellt ein Bild ohne Ausgabe

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>        # Entfernt ein bestimmtes Bild
docker image prune             # Entfernt nicht verwendete Bilder
docker image prune -a          # Entfernt alle nicht verwendeten Bilder

Entfernen von hängenden Bildern

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

Bild enttaggen

docker rmi repository/image-name:tag

Container-Management

Container starten

docker run -itd --name <container-name> <image-name> # Startet einen Container im abgekoppelten Modus
docker run -it -p <host-port>:<docker-port> <image-name> # Startet einen Container mit Portzuordnung
docker run -it --name <container-name> <image-name> # Startet einen Container interaktiv

Container auflisten

docker ps                  # Listet laufende Container auf
docker ps -a               # Listet alle Container auf
docker ps -s               # Listet laufende Container mit CPU- und Speichernutzung auf

Container starten, stoppen und neu starten

docker start <container-name>   # Startet einen gestoppten Container
docker stop <container-name>    # Stoppt einen laufenden Container
docker restart <container-name> # Neustart eines Containers

Container entfernen

docker rm <container-name>      # Entfernt einen gestoppten Container
docker rm -f <container-name>   # Entfernt einen Container gewaltsam
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q) # Entfernt alle Container

Entfernen aller gestoppten Container

docker container prune

Anschließen an Container

docker attach <container-name>  # Schließt an einen laufenden Container an
docker exec -it <container-name> bash # Führt einen Befehl in einem laufenden Container interaktiv aus

Container untersuchen

docker inspect <container-name> # Untersucht einen Container
docker logs <container-name>    # Zeigt die Protokolle eines Containers an
docker port <container-name>    # Zeigt die Portzuordnungen eines Containers an

Netzwerk-Management

docker network ls            # Listet alle Netzwerke auf
docker network create <network-name> # Erstellt ein neues Netzwerk
docker network rm <network-name>    # Entfernt ein Netzwerk

Volume-Management

docker volume ls             # Listet alle Volumes auf
docker volume create <volume-name> # Erstellt ein neues Volume
docker volume rm <volume-name>    # Entfernt ein Volume
docker run -v <host-path>:<container-path> <image-name> # Ein Volume mounten

Docker Compose

Grundlegende Befehle

docker-compose up           # Startet die in docker-compose.yml definierten Dienste
docker-compose up -d        # Startet Dienste im abgekoppelten Modus
docker-compose down         # Stoppt und entfernt Dienste
docker-compose ps           # Listet laufende Dienste auf
docker-compose logs         # Zeigt die Protokolle der Dienste an
docker-compose start        # Startet Dienste
docker-compose stop         # Stoppt Dienste
docker-compose pause        # Pausiert Dienste
docker-compose unpause      # Pausiert Dienste aufheben

Dockerfile-Befehle

Bild aus Dockerfile erstellen

docker build -t <image-name> <Dockerfile-path> # Erstellt ein Bild aus einem Dockerfile

Beispiel Dockerfile

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

Sicherheit und Geheimnisse

Docker-Geheimnisse

docker secret create <secret-name> <file> # Erstellt ein Geheimnis
docker secret ls                         # Listet alle Geheimnisse auf
docker secret rm <secret-name>          # Entfernt ein Geheimnis

Docker-Sicherheit

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

Bereinigung

Entfernen nicht verwendeter Ressourcen

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

Entfernen von ungetagten Bildern

Manchmal nach einem großen, guten Build gibt es ein Bild wie dieses aus dem docker images-Befehl:

viele ungetagte Bilder

um diese Bilder mit -Tags zu entfernen:

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

der obige Befehl ist veraltet und inkompatibel. Der Parameter dangling=true ist veraltet. Nutzen Sie stattdessen:

docker system prune

es wird folgende Warnung anzeigen:

WARNING! Dies wird folgendes entfernen:
	- alle gestoppten Container
	- alle Volumes, die von mindestens einem Container nicht genutzt werden
	- alle Netzwerke, die von mindestens einem Container nicht genutzt werden
	- alle hängenden Bilder

Sie können entscheiden, Ja zu dieser Warnung zu sagen…

Dieser Cheat Sheet umfasst die wesentlichen Befehle und Konzepte, die benötigt werden, um Docker-Container, -Bilder, -Netzwerke, -Volumen und mehr zu verwalten. Für eine tiefere Einblick, beziehen Sie sich auf die detaillierten Leitfäden und Tutorials, die online verfügbar sind.