Docker hat die Art und Weise veraendert, wie wir Software bauen und deployen. Hier ist der vollstaendige Leitfaden.
Was ist Docker¶
Docker verpackt eine Anwendung samt aller Abhaengigkeiten in einen Container. “Works on my machine” -> “Works everywhere.”
Grundlegende Befehle¶
docker run -d -p 8080:80 nginx
docker ps
docker stop
docker rm
docker images
docker pull postgres:16
Dockerfile¶
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci –production
COPY . .
EXPOSE 3000
CMD [“node”, “index.js”]
Docker Compose¶
services:
app:
build: .
ports: [“3000:3000”]
depends_on: [db]
db:
image: postgres:16
environment:
POSTGRES_PASSWORD: secret
volumes: [“pgdata:/var/lib/postgresql/data”]
volumes:
pgdata:
Networking¶
docker network create mynet
docker run –network mynet –name app myapp
docker run –network mynet –name db postgres
Volumes¶
docker volume create mydata
docker run -v mydata:/data myapp
docker run -v $(pwd):/app myapp # bind mount
Multi-stage Builds¶
FROM node:20 AS build
RUN npm run build
FROM node:20-alpine
COPY –from=build /app/dist ./dist
Best Practices¶
- Alpine Images
- Multi-stage Builds
- Non-root User
- .dockerignore
- Health Checks
- Gepinnte Versionen
Naechster Schritt¶
Lernen Sie Docker Compose fuer Multi-Container-Apps, dann Kubernetes fuer die Orchestrierung.