# 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 Konfigurationseinstellungen 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`