Docker Compose - Docker: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
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…“ |
|||
| (5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 7: | Zeile 7: | ||
==Beispiel docker-compose.yml== | ==Beispiel docker-compose.yml== | ||
< | <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: