Servicemanagement in Netzen - Leischner

Praktikumsblatt 2 - Docker + Miniwhoami (lokaler Desktop)

 

Aufgabe 1 - Installation Docker und Docker-Compose

  1. Installieren Sie auf Ihrem Linux-Desktop-System Docker in der aktuellen Version. Welche Versionen (Client, Server, API)  haben Sie installiert?
  2. Installieren Sie auf Ihrem Linux-Desktop-System docker compose in einer aktuellen Version. MIt welchem Kommando haben Sie docker compose installiert? Welche Version haben Sie installiert?

 

Aufgabe 2 - Primitiver Webserver

  1. Erstellen Sie in einem Subdirectory servmgmt-ws22/prak/pr02/miniserver ein Programm für einen kleinen, ganz einfachen Webserver miniserver, der sich mit "Hallo Service Management winter term 2022. My name is ...." meldet.
    Anforderung: Der Webserver soll in einer Programmier-Sprache (z.B. PHP, Node.js, Python, Go) programmiert sein, so dass sich der Server funktional erweitern lässt.
  2. Testen Sie Ihren Webserver - also das von Ihnen erstellte Programm - auf Ihrem Linux-Desktop-System. (Testen Sie ohne Docker, indem Sie einfach nur das Programm laufen lassen). Wie gehen Sie dabei vor?
  3. Erstellen Sie für Ihr Programm im Ordner servmgmt-ws22/prak/pr02/miniserver einen Dockerfile.
    Geben Sie den Dockerfile für Ihren Webserver an und erklären Sie ihn.
  4. Erzeugen Sie aus Ihrem Dockerfile ein Dockerimage miniserver mit dem Tag v1. Welches Kommando verwenden Sie hierfür?
  5. Lassen Sie mit docker run Ihren Webserver auf Ihrem Desktop-System unter dem Namen miniserver_20221 als Docker-Container an Port 20221 laufen. Wie lautet Ihr docker-run-Kommando?

    Die Portnummer 20221 ist folgendermaßen strukturiert:

    • 2 steht für die Lehrveranstaltung Servicesmanagement in Netzen,
    • 02 für Praktikumsblatt 2,
    • 2 für Aufgabe 2 auf diesem Praktikumsblatt,
    • 1 ist die Nummer des Containers in der Aufgabe.

 

Aufgabe 3 - Service miniwhoami

  1. Erstellen Sie ein Subdirectory servmgmt-ws22/prak/pr02/miniserver. In diesem erweitern Sie Ihr Webserver-Programm miniserver zu einem Webservice miniwhoami mit folgenden Eigenschaften:
    • Der Webservice miniwhoami zeigt den Hostnamen, die IP-Adressen (IPv4 und IPv6) in der Laufzeitumgebung sowie die Anzahl der Zugriffe an.
    • Die Hintergrundfarbe von miniwhoami ändert sich in Abhängigkeit vom Hostnamen.
      Konkret: Ein anderer Hostname bewirkt eine andere Hintergrundfarbe. Diese Eigenschaft ist zum Beispiel für die Analyse von Loadbalancing-Szenarien nützlich, denn hierdurch erkennt man sofort, ob sich beim Zugriff auf den Webservice miniwhoami der Hostname geändert hat, also ein anderer Container geantwortet hat.
  2. Testen Sie Ihre Anwendung zunächst ohne Docker auf Ihrem lokalen Rechner.
  3. Erstellen Sie für Ihr Programm einen Dockerfile und erzeugen Sie damit ein Dockerimage miniwhoami . Geben Sie Ihr Dockerfile und das Docker-Kommando für die Erstellung des Images an.
  4. Deployen Sie mit docker run zwei Container miniwhoami_1 und miniwhoami_2 Ihrer Webanwendung miniwhoami auf Ihrem Linux-Desktop-System. Verwenden Sie hierzu die Ports 20231 und 20232 . Wie lauten Ihre docker-run-Kommandos?
  5. Rufen Sie beide Services in Ihrem Broser auf und testen Sie den von Ihnen programmierten miniwhoami-Service.

 

Aufgabe 4 - Network Troubleshooting

  1. Gehen Sie mit docker exec in den Container miniwhoami_1.
    Mit welchem Kommando machen Sie das?
    Welche der nachfolgenden Kommandos können Sie im Container ausführen: ping, ip a, curl, dig, nslookup ?
  2. Gehen Sie nun mit dem hervorragenden Netzerk-Docker-Tool nicolaka/netshoot  in den Container miniwhoami_1.
    Mit welchem Kommando machen Sie das?
    Welche der nachfolgenden Kommandos können Sie im Container ausführen: ping, ip a, curl, dig, nslookup ?
  3. Können Sie vom Container mini_whoami_1 aus auf den Container mini_whoami_2 zugreifen?
  4. Wie sind die beiden Container mini_whoami_1 und mini_whoami_2 miteinander verbunden?
  5. Können Sie vom Container mini_whoami_1 auf die Webseite heise.de zugreifen?
  6. Geben Sie die Routingtabelle im Container mini_whoami_1 an und interpretieren Sie diese.

 

 

Impressum | Datenschutz | leischner.inf.h-brs.de, last modification: 07.10.2022-15.18