Skip to main content

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:

  • -d Detached Mode (im Hintergrund)
  • --name Container Name
  • --restart neustart verhalten
  • -p Port zuweisung (Host:Container)
  • -v pfad/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 starten
  • unless-stopped = Neustart außer manuell gestoppt
  • on-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