Docker Tutorial: Praxisbeispiele für Containerisierung

Docker ist eine der wichtigsten Technologien in der modernen Softwareentwicklung. Es ermöglicht Entwicklern, Anwendungen in isolierten Containern zu betreiben, wodurch die Bereitstellung und Skalierung vereinfacht wird. In diesem Artikel gehen wir auf praktische Anwendungsfälle von Docker ein und zeigen, wie Unternehmen und Entwickler diese Technologie nutzen können.


Praxisbeispiele für Docker

1. Webanwendungen mit Docker bereitstellen

Viele Unternehmen verwenden Docker, um Webanwendungen einfacher zu verwalten. Statt Software direkt auf einem Server zu installieren, wird sie in einem Container ausgeführt. Dadurch entfällt das „Works on my machine“-Problem.

Beispiel: Ein Unternehmen betreibt eine E-Commerce-Website. Die Anwendung wird mit Node.js entwickelt und in einem Docker-Container bereitgestellt:

FROM node:16
WORKDIR /app
COPY . .
RUN npm install
CMD ["node", "server.js"]

Mit Docker Compose kann die Anwendung mit einer Datenbank kombiniert werden:

version: '3'
services:
  web:
    build: .
    ports:
      - "5000:5000"
  database:
    image: postgres
    ports:
      - "5432:5432"

2. Continuous Integration (CI/CD) mit Docker

Docker wird oft in CI/CD-Pipelines verwendet, um Anwendungen konsistent in verschiedenen Umgebungen zu testen und bereitzustellen.

Beispiel: Ein Softwareteam nutzt Jenkins als CI-Tool und führt Tests in Docker-Containern aus:

pipeline:
  agent:
    docker:
      image: python:3.9
  stages:
    - stage: "Test"
      steps:
        - run: "pytest tests/"

Hierdurch wird sichergestellt, dass Tests in einer kontrollierten Umgebung ausgeführt werden.

3. Skalierbare Microservices-Architekturen

Microservices profitieren enorm von Docker, da jede Komponente der Anwendung in einem eigenen Container laufen kann.

Beispiel: Ein Unternehmen baut eine Microservices-Architektur mit Docker und Kubernetes. Ein Service könnte so aussehen:

FROM python:3.9
WORKDIR /service
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]

Mit Kubernetes kann der Service einfach skaliert werden:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: userservice
spec:
  replicas: 3
  selector:
    matchLabels:
      app: userservice
  template:
    metadata:
      labels:
        app: userservice
    spec:
      containers:
      - name: userservice
        image: myrepo/userservice:latest
        ports:
          - containerPort: 8000

4. Legacy-Anwendungen modernisieren

Unternehmen mit alten Anwendungen können Docker nutzen, um sie in einer moderneren Umgebung zu betreiben.

Beispiel: Ein altes PHP-Backend soll nicht mehr direkt auf einem Server laufen, sondern in einem Container:

FROM php:7.4-apache
COPY . /var/www/html/
EXPOSE 80

Damit kann die alte Anwendung sicher in einem Container weiter betrieben werden.


Fazit

Docker bietet eine Vielzahl von Einsatzmöglichkeiten in der Praxis. Von der Webentwicklung über Continuous Integration bis hin zu Microservices und der Modernisierung von Legacy-Software – Docker hilft, Prozesse zu vereinfachen, Skalierung zu erleichtern und Anwendungen effizient bereitzustellen. Wer sich mit moderner Softwareentwicklung beschäftigt, sollte Docker definitiv in seinen Werkzeugkasten aufnehmen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert