🔨
DevOps
  • Kursinformationen
    • Zeitplan
  • Docker Container
    • Docker Container Übungsaufgabe
    • Docker Container Hausaufgabe
  • Docker Compose
    • Compose Übungsaufgabe
    • Compose Hausaufgabe
  • Ansible
    • Ansible Hausaufgabe
    • Videos
  • Vagrant
    • Vagrant Hauaufgabe
  • CI/CD und Pipelines
    • GitLab Pipelines
  • DevOps Grundlagen
    • Verständnisfragen
  • DevOps Philosophie
  • DevOps Historie
  • Kennzahlen in der Wertekette
  • Kanban
  • Übungsaufgaben
    • Optimierung Wertekette
    • Vagrant
  • Archiv
    • DevOps - Philosophie
    • 04_kanban
    • DevOps - Value Stream Maps
    • DevOps - GitOps
    • DevOps - Metriken
    • DevOps - Übungen und Abgaben
  • Screencasts
Powered by GitBook
On this page
  • Aufgabe 1: Einfaches Docker-Compose Projekt
  • Aufgabe 2: Umgebungsvariablen in Docker-Compose
  • Aufgabe 3: Volumes
  • Aufgabe 4: Mehrer Dienste
  • Aufgabe 5: Skalierung
  1. Docker Compose

Compose Übungsaufgabe

PreviousDocker ComposeNextCompose Hausaufgabe

Last updated 7 months ago

Aufgabe 1: Einfaches Docker-Compose Projekt

Erstellen Sie Docker-Compose-Projekt, das einen einfachen Webserver mit einer HTML-Seite bereitstellt.

  • Nutzen Sie als Images nginx:latest

  • Erstellen Sie einen Ordner namens html im selben Verzeichnis wie Ihredocker-compose.yaml-Datei und legen Sie eine einfache index.html-Datei mit einem beliebigen Inhalt darin ab.

  • Verwenden Sie ein Bind Mound um den Ordner ./html auf den Ordner /usr/share/nginx/html im Container zu mounten.

  • Routen Sie den Port 8080 auf den Port 80 Ihres Containers.

  • Führe Sie den Befehl docker-compose up aus, um dein Docker-Compose-Projekt zu starten. Sie können den Webserver unter http://localhost:8080 aufrufen und die Inhalte der index.html-Datei sehen.

  • Ändern Sie die Datei wie in der vorherigen Aufgabe auf dem Host-System und lasse Sie sich diese Änderungen über ein Refresh Ihres Browser anzeigen.

Aufgabe 2: Umgebungsvariablen in Docker-Compose

Erstellen Sie eine Docker-Compose-Datei, die eine Anwendung startet, die eine Umgebungsvariable verwendet, um eine Konfiguration anzupassen.

  • Verwenden Sie ein beliebiges Image

  • Nutzen Sie das Element und führend damit folgenden Befehl aus: sh -c "echo Hallo $$MSG"

  • Setzen Sie mit dem Element eine Umgebungsvariable MSG und weisen Ihr den Wert "Welt" zu.

  • Führen Sie den Befehl docker-compose up aus. Die Anwendung wird gestartet und sollte "Hallo Welt" ausgeben.

Ihre Ausgabe sollte ähnlich zu folgender sein:

  • Löschen Sie nun den environment Eintrag aus der docker-compose.yml Datei.

  • Legen Sie im gleichen Ordner, eine Datei an mit dem Namen .env

  • Schreiben Sie in die Datei eine Variable

    MSG=SEB4
  • Ändern Sie nun in der docker-compose.yml Datei den command Eintrag wie folgt sh -c "echo Hallo ${msg}

  • Führen Sie den Befehl docker-compose up aus. Die Anwendung wird gestartet und sollte "Hallo Welt" ausgeben.

Ihre Ausgabe sollte ähnlich zu folgender sein:

Hinweis: Über die Syntax ${variablenname} wird in Docker Compose auf Variablen zugegriffen.

Aufgabe 3: Volumes

Erstellen Sie ein Compose-Projekt, das eine Datenbank enthält und einen Persistenten Speicher für die Daten verwendet.

  • Verwenden Sie das MySQL 5.7 Image

  • Nutzen Sie ein Named Volume mit dem Namen db_data

  • Stellen Sie sicher, dass sie Datenbank, User und Passwort mittels Umgebungsvariablen setzen (entweder in der Compose-Datei oder in einer .env-Datei)

Aufgabe 4: Mehrer Dienste

Erstellen Sie ein Compose-Projekt, das eine Datenbank wie aus Aufgabe 3, ein Webserver wie aus Aufgabe 1 und zusätzlich ein Node.js Server startet.

Aufgabe 5: Skalierung

Erweitern Sie das vorhandene Docker-Compose-Projekt aus Übung 4, um die Skalierung des Backend-Dienstes zu ermöglichen.

Variante 2: Entfernen Sie das deploy-Element und starten Sie Compose mit folgendem Befehl: docker-compose up --scale backend=3

In beiden Fällen sollten Ihre Container ungefähr so in Docker Desktop dargestellt werden:

Ändern Sie die Compose-Datei zurück in Variante 1 und starten Sie das Projekt mit dem Befehl aus Variante 2. Wie viele Backend Container werden durch diese Kombination gestartet?

Stellen Sie mittels sicher, dass der MySQL Server vor dem Node-Server startet.

Variante 1: Nutzen Sie das Element um 3 Replicas des Backends zu erzeugen.

depends_on
deploy
command
environment
Skalierung von Docker Containern