⏱️2 min read · 410 words

Dockerist die Standardmethode zum Erstellen, Versenden und Ausführen von Anwendungen im Jahr 2026. Auf jeder Cloud-Plattform – AWS, GCP, Azure – werden Docker-Container ausgeführt. Dieses Handbuch behandelt Docker von der Erstinstallation bis hin zu Multi-Container-Apps mit Docker Compose.
📋 Table of Contents
Installieren Sie Docker
# Ubuntu / Debian
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker
# Verify
docker --version
docker run hello-world
Kernkonzepte
- Bild:Blaupause für einen Container (schreibgeschützt)
- Behälter:Laufende Instanz eines Bildes
- Docker-Datei:Anweisungen zum Erstellen eines Images
- Registrierung:Speicher für Bilder (Docker Hub, ECR, GCR)
Ihre erste Docker-Datei
# Dockerfile
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
# Build image
docker build -t myapp:latest .
# Run container
docker run -d -p 8000:8000 --name myapp myapp:latest
# View logs
docker logs myapp
# Stop & remove
docker stop myapp && docker rm myapp
Wichtige Docker-Befehle
# List running containers
docker ps
# List all containers (including stopped)
docker ps -a
# List images
docker images
# Execute command inside container
docker exec -it myapp /bin/bash
# Copy file from container
docker cp myapp:/app/output.log ./output.log
# Remove all stopped containers + unused images
docker system prune -af
Docker-Volumes (persistente Daten)
# Named volume — data persists between container restarts
docker run -d \
-v postgres_data:/var/lib/postgresql/data \
-e POSTGRES_PASSWORD=secret \
--name postgres \
postgres:16
# Bind mount — mount host directory
docker run -d \
-v $(pwd)/data:/app/data \
myapp:latest
Docker Compose – Multi-Container-Apps
# docker-compose.yml
services:
web:
build: .
ports:
- "8000:8000"
environment:
- DATABASE_URL=postgresql://postgres:secret@db:5432/mydb
depends_on:
- db
volumes:
- .:/app
db:
image: postgres:16
environment:
POSTGRES_PASSWORD: secret
POSTGRES_DB: mydb
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
# Start all services
docker compose up -d
# View logs
docker compose logs -f
# Stop everything
docker compose down
# Rebuild and restart
docker compose up -d --build
Mehrstufige Builds (kleinere Bilder)
# Stage 1: Build
FROM node:22-alpine AS builder
WORKDIR /app
COPY package*.json .
RUN npm ci
COPY . .
RUN npm run build
# Stage 2: Production (no dev dependencies)
FROM node:22-alpine AS production
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
EXPOSE 3000
CMD ["node", "dist/index.js"]
Fazit
Docker beseitigt das Problem „funktioniert auf meinem Computer“. Lernen Sie die Grundlagen von Dockerfile kennen, beherrschen Sie Docker Compose für lokale Entwickler und Sie werden konsistente Apps ohne Überraschungen vom Laptop in die Cloud übertragen.
🔗 Share this article
✍️ Leave a Comment