Container
Ein Container ist eine laufende Instanz eines Docker Images.
Container erstellen & starten (docker run)
Der wichtigste Befehl:
docker run [OPTIONS] IMAGE [COMMAND]
Beispiel: Nginx Container starten
docker run -d \
--name nginx-app \
-p 80:80 \
nginx:latest
Erklärung:
-dDetached Mode (im Hintergrund)--nameContainer Name--restartneustart verhalten-pPort zuweisung (Host:Container)-vpfad/zum/volume
Wichtige Run Optionen (Cheatsheet)
Name vergeben
docker run --name my-container nginx
Port Mapping
docker run -p 3000:3000 myapp
Format:
HOST_PORT:CONTAINER_PORT
Environment Variablen
docker run -e NODE_ENV=production myapp
Volumes mounten
docker run -v ./data:/app/data myapp
Container im Hintergrund starten
docker run -d myapp
Container Lifecycle (sehr wichtig)
Laufende Container anzeigen
docker ps
Alle Container anzeigen (inkl. gestoppte)
docker ps -a
Container stoppen
docker stop nginx-app
Container starten (nach Stop)
docker start nginx-app
Container neu starten
docker restart nginx-app
Container löschen
docker rm nginx-app
Container + Volume löschen:
docker rm -v nginx-app
Logs & Debugging
Logs anzeigen
docker logs nginx-app
Live Logs (Follow Mode)
docker logs -f nginx-app
In einen laufenden Container gehen (Shell)
docker exec -it nginx-app bash
Oder bei Alpine Images:
docker exec -it nginx-app sh
Restart Policies (Production wichtig)
docker run -d \
--restart=always \
--name app \
myapp
Optionen:
no= Kein automatischer Restart (Default)always= Immer neu startenunless-stopped= Neustart außer manuell gestoppton-failure= Nur bei Fehler
Container Ressourcen limitieren (Advanced)
CPU Limit
docker run --cpus="1.0" myapp
RAM Limit
docker run -m 512m myapp
Sehr wichtig für:
- Server
- Kubernetes Vorbereitung
- Multi-Service Setups