Docker ist einfach zu lernen, aber schwer zu meistern. Hier sind 10 Fehler, die fast jeder macht.
1. Verwendung des :latest Tags¶
❌ FROM node:latest¶
✅ FROM node:20.11-alpine¶
2. Als Root ausführen¶
RUN addgroup -S app && adduser -S app -G app USER app
3. Riesige Images¶
Verwenden Sie Multi-Stage Builds und Alpine:
FROM node:20 AS build WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . RUN npm run build
FROM node:20-alpine COPY –from=build /app/dist ./dist CMD [“node”, “dist/index.js”]
4. Falsche Layer-Reihenfolge (Cache)¶
✅ Dependencies zuerst, dann Code¶
COPY package*.json ./ RUN npm install COPY . .
5. Fehlende .dockerignore¶
node_modules .git .env Dockerfile
6. Secrets im Image¶
Niemals Passwörter in die Dockerfile schreiben. Verwenden Sie Runtime-Umgebungsvariablen oder Docker Secrets.
7. Mehrere Prozesse in einem Container¶
Ein Container = ein Prozess. Machen Sie aus Containern keine VMs.
8. Kein Health Check¶
HEALTHCHECK –interval=30s –timeout=3s CMD curl -f http://localhost:3000/health || exit 1
9. Keine Volumes für Daten¶
docker run -v pgdata:/var/lib/postgresql/data postgres:16
10. Keine Ressourcenlimits¶
docker run –memory=512m –cpus=1.0 myapp
Zusammenfassung¶
Befolgen Sie Best Practices von Anfang an. Schlechte Gewohnheiten zu korrigieren ist schwerer, als sie gar nicht erst zu lernen.