Docker Compose - Docker: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Robin.will (Diskussion | Beiträge)
Die Seite wurde neu angelegt: „=Was ist Docker Compose?= *Docker Compose ermöglicht es Multi-Container-Anwendungen zu definieren und auszuführen *Es verwendet eine YAML-Datei um die Servic…“
 
Robin.will (Diskussion | Beiträge)
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 7: Zeile 7:


==Beispiel docker-compose.yml==
==Beispiel docker-compose.yml==
<code>
<pre>
version: '3'
version: '3'
services:
services:
Zeile 24: Zeile 24:
     volumes:
     volumes:
       - ./data:/var/lib/postgresql/data
       - ./data:/var/lib/postgresql/data
</pre>


</code>
*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.
 
=Das YAML Format=
*'''YAML''' ist eine Sprache abgeleitet von '''XML''' und steht für '''YAML Ain't Markup Language'''
*Die Formatierung der Sprache ist sehr ähnlich zu '''JSON'''
*YAML gilt als datenorientiertes Format
 
==YAML-Elemente==
*Compose-Dateien stellen sich hauptsächlich aus Listen, Mappings und Kommentaren zusammen
*Eine '''Liste''' wird geführt von einem Bindestrich. Eine Liste sieht in etwa so aus:
<pre>
- peter
- rudy
- hans
</pre>
 
*'''Mappings''' sind Key-Value-Paare die durch ein Doppelpunkt getrennt werden. Bsp:
<pre>
Version: 3.7
expose:
    - "3000"
    - "4000"
</pre>
*'''Kommentare''' kennzeichnen sich durch ein '''#''' aus. Bsp.:
<pre>
#dies ist ein kommentar
</pre>
 
=Sektionen in docker-compose.yml=
*Die Häufigsten Sektionen in einer docker-compose.yml sind:
**'''version:''' Beschreibt die Version des Compose Datei-Format
**'''services:''' leitet den Abschnitt für die Elemente der Container ein
**'''networks:''' hier werden die Netzwerke definiert
**'''volumes:''' hier werden die Volumen definiert
==Sektion Services==
*Erklärung anhand eines Beispiel Files
<pre>
services:
  web:
      image: nginx:latest
      ports:
          - "8080:80"
      volumes:
          - ./html:/var/www/html
      environment:
          DEBUG: 'true'
          CONFIG_FILE_PATH: /code/config
      networks:
          my_net:
</pre>

Aktuelle Version vom 21. Mai 2024, 21:25 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.

Das YAML Format

  • YAML ist eine Sprache abgeleitet von XML und steht für YAML Ain't Markup Language
  • Die Formatierung der Sprache ist sehr ähnlich zu JSON
  • YAML gilt als datenorientiertes Format

YAML-Elemente

  • Compose-Dateien stellen sich hauptsächlich aus Listen, Mappings und Kommentaren zusammen
  • Eine Liste wird geführt von einem Bindestrich. Eine Liste sieht in etwa so aus:
- peter
- rudy
- hans
  • Mappings sind Key-Value-Paare die durch ein Doppelpunkt getrennt werden. Bsp:
Version: 3.7
expose:
    - "3000"
    - "4000"
  • Kommentare kennzeichnen sich durch ein # aus. Bsp.:
#dies ist ein kommentar

Sektionen in docker-compose.yml

  • Die Häufigsten Sektionen in einer docker-compose.yml sind:
    • version: Beschreibt die Version des Compose Datei-Format
    • services: leitet den Abschnitt für die Elemente der Container ein
    • networks: hier werden die Netzwerke definiert
    • volumes: hier werden die Volumen definiert

Sektion Services

  • Erklärung anhand eines Beispiel Files
services:
  web:
      image: nginx:latest
      ports: 
          - "8080:80"
      volumes: 
          - ./html:/var/www/html
      environment:
          DEBUG: 'true'
          CONFIG_FILE_PATH: /code/config
      networks:
          my_net: