Docker Compose - Docker: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 27: Zeile 27:
  
 
*Hier werden zwei Services definiert '''nginx als Webserver''' und '''postgres als Datenbank'''
 
*Hier werden zwei Services definiert '''nginx als Webserver''' und '''postgres als Datenbank'''
 +
 +
=Vorteile von Docker Compose=
 +
*Einfache Verwaltung bei komplexeren Anwendungen durch deklarative Konfigurationsdateien
 +
*Anwendungen können leicht auf verschiedene Umgebungen (lokal, Test, Produktion) übertragen werden.
 +
*Jeder Service läuft in einem eigenen Container, was die Isolierung und Skalierung der Services erleichtert.
 +
*Schnellere Entwicklungszyklen durch einfache Handhabung und Automatisierung.

Version vom 21. Mai 2024, 21:07 Uhr

Was ist Docker Compose?

  • Docker Compose ermöglicht es Multi-Container-Anwendungen zu definieren und auszuführen
  • Es verwendet eine YAML-Datei um die Services, Netzwerke und Volumen zu definieren und zum starten bzw. stoppen
  • Die docker-compose.yml umfasst verschiedene Anwendungen in einer Datei und stellt so eine Multi-Container-Anwendung dar
  • Mithilfe der Befehle docker-compose up und docker-compose down wird die docker-compose.yml ausgeführt und die Container gestartet oder heruntergefahren
  • Docker Compose verwaltet eigenständig Netzwerke und Volumen, die zwischen den Containern geteilt werden.

Beispiel docker-compose.yml

version: '3'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./web:/usr/share/nginx/html
  db:
    image: postgres:latest
    environment:
      POSTGRES_DB: mydatabase
      POSTGRES_USER: myuser
      POSTGRES_PASSWORD: mypassword
    volumes:
      - ./data:/var/lib/postgresql/data
  • Hier werden zwei Services definiert nginx als Webserver und postgres als Datenbank

Vorteile von Docker Compose

  • Einfache Verwaltung bei komplexeren Anwendungen durch deklarative Konfigurationsdateien
  • Anwendungen können leicht auf verschiedene Umgebungen (lokal, Test, Produktion) übertragen werden.
  • Jeder Service läuft in einem eigenen Container, was die Isolierung und Skalierung der Services erleichtert.
  • Schnellere Entwicklungszyklen durch einfache Handhabung und Automatisierung.