# Anwendungsvirtualisierung mit Docker Dieses Etherpad gehört uns für die Dauer der Fortbildung und danach. Bitte nutzen Sie es in Ihrem Sinne und ergänzen, korrigieren und ordnen Sie. ## Link zur Veranstaltung - https://akkreditierung.hessen.de/web/guest/catalog/detail?tspi=0189333901 ## Inhalte der Veranstaltung Die Fortbildung bietet einen Einstieg in die Anwendungsvirtualisierung mit Docker. Das reicht von der Installation über die grundlegenden Funktionen und Konfigurationseinstellunge​n bis hin zu unterschiedlichen Betriebssystemumgebungen wie Linux/MacOS/Windows. Die Fortbildung umfasst folgende Inhalte: - Anforderungen an Hard- und Software für den Einsatz von Docker - Installation und Konfiguration - Docker in der (Power)Shell (Linux/MacOS/Windows) - Docker-Images herunterladen und Container starten - Eigene Images bauen mit Dockerfile und Docker-compose - Container verlinken - Deployment von Docker-Containern - Backups, Updates und Wartung ## Veranstaltungsplanung ### Mittwoch, 31.10.2018 - Input: Bericht aus der Praxis: Was ist und was kann Docker? - Hands-on: Docker-Images herunterladen und Container starten - Hands-on: Container verlinken - Hands-on: Eigene Images bauen mit Dockerfile und Docker-compose - Diskussion: Entwicklung didaktischer Einsatzszenarien - Input und Hands-on: Deployment von Docker-Containern - Input und Hands-on: Zusammenspiel von GitHub und Docker Hub - Input und Hands-on: Zusammenspiel von GitLab und Docker ### Donnerstag, 01.11.2018 - Input: Anforderungen an Hard- und Software für den Einsatz von Docker - Hands-on: Installation und Konfiguration (auf dem eigenen Rechner) - Projektarbeit: [Integrierte Lern- und Arbeitsaufgabe](https://hackmd.io/s/B1sgsW_hm#) - Input und Diskussion: Backups, Updates, Wartung und Sicherheit ## Erwartungen - "komprimierte Grundlagen von Docker, Verständnis des Konzepts" - Prüfung, was Docker für Administration in der Schule bringt, Vorbereitung auf die Wünsche der Kolleg_innen, Chancen und Risiken - Erwartung, dass die IHK demnächst Fragen zu Containervirtualisierung stellen wird - Welche Möglichkeiten gibt es, um mit Docker ggf. den SuS Software zur Verfügung zu stellen? - Welche Möglichkeiten der Administration mit und von Dockerumgebungen gibt es? - Wie strahlt Containervirtualisierung auf die Anwendungsentwicklung zurück? - Bau von Toolboxen, um SuS technische Lernumgebungen zur Verfügung zu stellen - Suche nach Ideen für den Unterricht in der Oberstufe - Was muss ich über Docker wissen, um es im Unterricht einzusetzen? ## Links und Themen - Auf die Frage, wie die Default Docker Registry geändert werden kann: https://stackoverflow.com/questions/33054369/how-to-change-the-default-docker-registry-from-docker-io-to-my-private-registry - Was ist das scratch-Image? https://hub.docker.com/_/scratch/ ### Erläuternde Darstellungen - Zur Frage nach den Unterschieden von Virtuellen Maschinen (VMs) und Images/Containers: https://www.docker.com/resources/what-container#/package_software - https://jaxenter.de/docker-vs-vm-54816 - https://jaxenter.de/linux-docker-lxc-container-61196 ### Ein Image selber bauen #### Erstellen eines neuen Ordners mkdir -p ~/docker-workshop/did cd ~/docker-workshop/did #### In Ihrem Lieblingseditor anlegen von `hello` #!/bin/bash echo "Hello Darmstadt!" exit 0 #### Die Datei ausführbar machen auf der Kommandozeile chmod +x hello #### Anlegen von Dockerfile im Editor FROM scratch COPY hello / CMD ["/hello"] #### In der Kommandozeile ausführen (auf den Punkt achten, wenn Sie das Image bauen!) docker build -t did . docker run --rm did ### DNS für Docker ergänzen #### In Ihrem Lieblingseditor anlegen von `/etc/docker/daemon.json` { "dns":["10.16.1.1"] } Anschließend zum Einlesen der neuen Konfigurationsdatei: service docker restart ### Aufgabe: Wordpress mit docker-compose starten Link: https://docs.docker.com/compose/wordpress/ #### Container im Hintergrund starten docker-compose up -d #### Ein Kommando im Container ausführen, z.B. die Bash: docker exec -ti [Name des Containers] bash #### "Von außen" die Meldungen "im Innern" verfolgen docker logs [Name des Containers] -f docker-compose logs -f #Im Verzeichnis der docker-compose.yml ### Aufräumen! Sorgen Sie dafür, dass Sie nicht mehr benötigte Container und Images von Ihrem System entfernen! docker rm docker rmi docker system prune # Bereinigung des Systems von allem, was nicht mehr benötigt wird ### Didaktische Einsatzszenarien Welche Ideen haben Sie für Docker in Unterricht und Verwaltung? - CodiMD mit Docker installieren: interessante Kollaborationsplattform, die allerdings zahlreiche Abhängigkeiten hat -> Docker bündelt diese in einem Image! - Herausforderung: Alle SuS sollen einen geschützen Raum haben, um mit Docker zu experimentieren. Idee ist, jeder/jedem eine virtuelle Maschine zur Verfügung zu stellen, in der dann Docker läuft. - ... ### technische Themen - Fallstricke bei der Installation - Wie generiert Docker die Zufallsnamen für Container: https://frightanic.com/computers/docker-default-container-names/ - Docker auf dem Raspbery: http://www.linux-magazin.de/news/hypriot-os-docker-auf-dem-raspberry-pi/ - https://mermaidjs.github.io/ ### Didaktisches Netzwerk in der HEMS - Bootmanager LINBO: http://www.knopper.net/linbo/index-en.html - paedML: https://www.lmz-bw.de/netzwerkloesung/ ### Installieren und Absichern von Docker unter Ubuntu - Installation: https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce - Absicherung nach der Installation: https://docs.docker.com/install/linux/linux-postinstall/ ### Bücher - https://www.safaribooksonline.com/ - https://www.rheinwerk-verlag.de/docker_4599/ "Docker" mit einer kurzen Einführung in Kubernetes ###### tags: `wb-hessen`