Docker Flashcards
Welche grundlegenden Elemente gibt es für Docker?
- Images (Vordefinierte Betriebssysteme mit Setup)
- Container (Laufendes Image)
- Networks (Verbindet Container in ein gemeinsames Netzwerk)
- Volumes (Mapping von Host zu Container Dateipfaden)
Wie erzeugt man ein Image?
Mit dem docker build
Befehl
Wie definiert man ein Image?
Durch ein Dockerfile
Wie kann ein Dockerfile aussehen?
FROM ubuntu:18.04 RUN apt update && apt install -y zip ENTRYPOINT ["/bin/ping","-c","3"] CMD ["localhost"]
Was ist der Unterschied zwischen ENTRYPOINT und CMD?
- ENTRYPOINT legt unveränderlich fest, was beim Start des Container ausgeführt wird
- CMD wird
- als Argument an den Befehl von ENTRYPOINT angehängt oder
- wenn alleine definiert als ENTRYPOINT Kommando verwendet
Auf welchem Betriebssystem ist Docker grundsätzlich lauffähig?
Linux, es benötigt also einen Linux Kernel.
Wie kann man Docker auf Windows zum laufen kriegen?
Indem man mit Hyper-V eine virtuelle Linux Maschine simuliert und in dieser dann Docker for Windows gestartet wird.
Worin unterscheiden sich eine Virtual Machine gegenüber Docker?
- Container nutzen den Kernel des Host Systems
- Container laufen über die Docker Container Engine
- VMs hingegen nutzt einen Hypervisor (VMWare or VirtualBox)
- VMs benötigen immer ein eigenes volles Betriebssystem
Beispiel:
- 10 Container teilen sich Ressourcen
- 10 VMs benötigen 10 x Betriebssystem
Wie kommuniziert man mit Docker?
- Der Service Docker Daemon läuft auf dem Host OS (Linux)
- Dieser bietet eine REST Schnittstelle
- Über die Docker CLI kann man nun kommunizieren
Was ist die Docker Registry?
- Ort an dem Images abgelegt werden können
- Docker Hub ist die öffentliche Registry
- Gitlab bietet auch eine eigene Registry und nutzt diese auch für ihre Pipelines
Wie kann ich ein Image von der Docker Registry downloaden?
Mit dem Befehl docker pull imagename
Wozu dient Docker Compose?
- Verwaltung mehrerer Container in einer docker-compose.yml Datei
- Container werden als services definiert
- Man kann dann alle Services bauen (sofern nötig) mit
docker-compose build
- Starten / Stoppen kann man per
docker-compose up / down
Wozu gibt es Docker Swarm?
- Um ein Cluster an Containern zu bauen
- Cluster beinhalten mehrere Container und es kann mehrere Cluster geben
- Fällt ein Cluster aus, wird ein anderes direkt genommen
Welches bekannte Cluster Tool gibt es?
- kubernetes