Docker-Befehlsreferenz
Inhaltsverzeichnis:
Infos auslesen
| Beschreibung | Befehl | Bemerkung |
|---|---|---|
| Zeige alle laufenden Container | docker ps [--no-trunc] | |
| Container-Übersicht | docker stats | (CPU-/RAM/IO-Verbrauch) |
| Alle laufenden Container auflisten | docker ps | |
| Alle Container anzeigen (auch Gestoppte) | docker container ls --all | |
| Ausführliche Infos zu einem Container | docker inspect CONTAINER-ID | |
| Docker Logfile ausgeben | docker logs -f CONTAINER | Dem Logfile folgen |
| Docker Logfile ausgeben | docker logs --tail 100 CONTAINER | Zeige die letzten x Zeilen |
| Einem docker compose folgen | docker compose logs -f | Allen Containern darin |
| Docker Events | docker events& | wenn z.B. Container nicht starten |
| Ressourcen-Verbrauch anzeigen | docker stats [–no-stream] |
Container steuern
| Beschreibung | Befehl | Bemerkung |
|---|---|---|
| Container stoppen | docker stop CONTAINER | |
| Container neu starten | docker restart CONTAINER | |
| Einen Befehl innerhalb eines Containers ausführen | docker exec -i CONTAINER BEFEHL | |
| In die BASH eines Containers springen | docker exec -it CONTAINER /bin/bash | |
| Container starten und direkt in die Shell springen | docker run -it --entrypoint /bin/bash alpine:latest | In Shell springen, bevor der Container automatisch beendet wird |
| Mit einem bestimmten User anmelden | docker compose exec -u 33 CONTAINER sh | 33 ist die ID des Users |
| Container löschen (einen Bestimmten) | docker rm CONTAINER | |
| Alle laufenden Containers stoppen | docker stop $(docker ps -aq) | |
| Datei aus einem Container lokal kopieren | docker cp CONTAINER:/var/www/myfile.php /tmp/myfile.php | |
| Ordner im Container löschen | docker exec CONTAINER rm /pfad/zur/datei |
Änderungen an einem Docker-Container dauerhaft speichern
docker ps
docker commit <Container ID> php:7.4-apache
Docker-Container aktualisieren und neu starten
docker compose stop
docker compose pull
docker compose up -d
ggf.
docker compose up \-\-build -d
Per Einzeiler:
docker compose stop && docker compose pull & docker compose up -d
Volumes
| Beschreibung | Befehl | Bemerkung |
|---|---|---|
| Volume erstellen | docker volume create NAME | |
| Volumes auflisten | docker volume ls | |
| Ungenutzte Volumes löschen | docker volume prune | Die keine Verbindung zu einem Container haben |
Netzwerke
| Beschreibung | Befehl | Bemerkung |
|---|---|---|
| Netzwerke auflisten | docker network ls | |
| Infos zu einem spezifischen Netzwerk anzeigen | docker network inspect NETZWERK | |
| IP-Adresse eines Containers ausgeben | docker inspect --format=’{{.NetworkSettings.IPAddress}}’ CONTAINER | |
| Ein Netzwerk löschen | docker network rm NETZWERK |
Images
| Beschreibung | Befehl | Bemerkung |
|---|---|---|
| Zeige lokal vorhandene Images | docker image ls | |
| Ungenutzte Images löschen | docker image prune |
Aufräumen
| Beschreibung | Befehl | Bemerkung |
|---|---|---|
| Ungenutzte Ressourcen löschen | docker system prune | Images, Container und Netzwerke |
Backups
| Beschreibung | Befehl | Bemerkung |
|---|---|---|
| MySQL-Datenbank sichern | docker exec -i CONTAINER mysqldump -uroot -pPASSWORT DATENBANK > /tmp/DATENBANK.sql | |
| MySQL-Datenbank wiederherstellen | docker exec -i CONTAINER mysql -uroot -pPASSWORT DATENBANK < /tmp/DATENBANK.sql |
Apache Container starten
Mit definiertem htdocs-Pfad. Läuft im Vordergrund, damit man den Logs folgen kann.
docker run \-\-rm -d \-\-name my-apache-app -p 80:80 -v /home/tobi/www:/usr/local/apache2/htdocs/ httpd:latest
-p 80:80 = Er lauscht lokal auf 0.0.0.0:80 und reicht es in den Container auf Port 80 weiter.
–rm = Entferne den Container wenn er beendet wird.
-d = Container läuft im Hintergrund.
Portainer starten
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9000:9000 \-\-name=portainer \-\-restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
http://localhost:9000
Nun wird für Portainer ein Passwort für den Admin abgefragt.