Docker — verpackte Software
Container packen Anwendung + Abhängigkeiten + OS‑Userland in ein Image. „Works on my machine" gibt's nicht mehr.
Anatomie:
- Image: unveränderliches Snapshot — wie eine Vorlage.
- Container: laufende Instanz eines Images.
- Dockerfile: Rezept zum Bauen eines Images.
- Volume: Datenspeicher außerhalb des Containers.
- Network: wie Container miteinander reden.
Beispiel‑Dockerfile (Multi‑Stage):
FROM node:22-alpine AS builder WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . RUN npm run build FROM node:22-alpine WORKDIR /app COPY --from=builder /app/dist ./dist COPY --from=builder /app/node_modules ./node_modules EXPOSE 3000 CMD ["node", "dist/server.js"]
docker‑compose.yml — mehrere Services:
services:
web:
build: .
ports: ["3000:3000"]
environment:
DATABASE_URL: postgres://wb:secret@db:5432/app
depends_on: [db]
db:
image: postgres:16
environment:
POSTGRES_USER: wb
POSTGRES_PASSWORD: secret
volumes: [pgdata:/var/lib/postgresql/data]
volumes:
pgdata:
Zurück zu Technik