Docker

{{heroImg}} logo
Docker ist eine Open-Source-Plattform für Container-Virtualisierung, die es ermöglicht, Anwendungen und ihre Abhängigkeiten in isolierten Containern zu verpacken, zu verteilen und auszuführen. Diese Container können auf verschiedenen Systemen konsistent und zuverlässig bereitgestellt werden.

Was ist Docker?

Docker revolutioniert die Art und Weise, wie wir Software entwickeln, testen und bereitstellen. Ähnlich wie Frachtcontainer im Transportwesen standardisierte Maße für den Warentransport einführten, standardisiert Docker die Bereitstellung von Software durch Container. Diese Container beinhalten alles, was eine Anwendung zum Laufen braucht: Code, Laufzeitumgebung, Systemwerkzeuge und Bibliotheken.

Grundlegende Konzepte

  • Container: Isolierte Umgebungen für Anwendungen
  • Images: Vorlagen für Container
  • Dockerfile: Anweisungen zum Erstellen von Images
  • Docker Hub: Zentrales Repository für Images
  • Docker Compose: Tool für Multi-Container-Anwendungen

Code-Beispiele

Einfacher Web-Server Container

# Dockerfile
FROM nginx:alpine
COPY ./app /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

Multi-Container-Anwendung

# docker-compose.yml
version: '3'
services:
  web:
    build: ./web
    ports:
      - "80:80"
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example

Vorteile von Docker

  • Konsistente Entwicklungsumgebungen für alle Teammitglieder
  • Schnellere Bereitstellung von Anwendungen
  • Bessere Ressourcennutzung im Vergleich zu virtuellen Maschinen
  • Vereinfachte Wartung und Updates
  • Verbesserte Skalierbarkeit in der Cloud

Einsatzgebiete

  • Entwicklung und Test von Anwendungen
  • Bereitstellung von Microservices
  • Continuous Integration/Deployment (CI/CD)
  • Cloud-native Anwendungen
  • Lokale Entwicklungsumgebungen

Docker-Werkzeuge

  • Docker CLI für Kommandozeilen-Steuerung
  • Docker Desktop für lokale Entwicklung
  • Docker Compose für Multi-Container-Anwendungen
  • Docker Hub für Image-Verwaltung
  • Docker Swarm für Container-Orchestrierung

Verwandte Begriffe