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 CONTAINERID
Docker Logfile ausgeben docker logs -f apache-lampp-php (dem Logfile folgen)
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
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.