Docker Daemon¶
Docker - der defacto Standard¶
Im Zentrum - und eben manchmal auch im Zentrum der Kritik - steht der Service / Daemon für die gesamte Docker Technik: der Docker Daemon.
Docker Daemon Technik - Übersicht - Root User¶
Beginnen wir unsere Übersicht zum Docker Daemon - oder ganz allgemein gesprochen - zur Docker Technik mit ein paar Pros:
De-Facto Industriestandard
Einfache Nutzung
Stellt alle nötigen Tools für die Fertigungskette von Container zur Verfügung: Registries anbinden, Images bauen, Container erstellen und nutzen
Riesige Nutzergemeinschaft mit Community
Für nahezu alle Technik-Plattformen verfügbar
Stellt eine konsistente Umgebung für Entwicklung, Testen und Produktion bereit.
Aber es gibt natürlich auch Cons (Kritikpunkte):
Recht schwergewichtig verglichen mit alternativen Container Managern
Wir benötigen einen Daemon - also einen Service, der normaler Weise mit Root-Rechten läuft. Und das kann Sicherheitprobleme nach sich ziehen.
Für die Nutzung von Docker-Technik ohne Root-Rechte gibt es seit ein paar Jahren eine hausinterne Lösung: Run the Docker daemon as a non-root user (Rootless mode) .
Neben vielen Vorbedingungen für diese Umsetzung hat diese Technik auch auf vielen Distros etwas von Bastelstunde. Es ist aber im Rahmen diverser Entscheidungen rund um Ihre Containertechnik eine Empfehlung und Tests wert.
Hinweis
Wir führen unsere Docker Kommandos als Standarduser aus (s.o. Grafik). Das haben wir allerdings einfach über eine Gruppenzugehörigkeit (Gruppe docker) erreicht und vereinfachen so die Nutzung der Docker-CLI (ohne sudo).
Podman und Co - die Containeralternativen¶
Als Alternative zu Docker - für eine vermeintlich sicherere weil Root-lose Containerlösung - wird häufig Podman genannt.
Das ist im Grunde auch völlig richtig, wenn man sich auf die Kernkompetenz des Containern bezieht.
Für die tägliche Arbeit und Umsetzung der folgenden Aufgaben (s.a. oben) muss man allerdings wieder Extra-Tools nutzen (franz.: from Docker to Podman).
Vergleich Docker vs. Podman auf franz. Infoportal¶
Hier ein paar Beispiele für diese Umsetzungen:
Skopeo:Images pullen/pushen mit Registry (Link Scopeo Github)
Buildah: Images bauen/erstellen (Link Buildah)
runC: Container ausführen (wird auch von Docker genutzt!)
Tool: Link Github runC
Die zusätzlichen (externen) Tools können wieder eigene Probleme nach sich ziehen.
Docker Daemon Konfiguration¶
Verschiedene Möglichkeiten für die Docker Daemon Konfiguration:
Beim Starten über die Kommandozeile - siehe
dockerd --helpDocker config:
/etc/sysconfig/docker(z.B.DOCKER_OPTS="")Systemweite config:
/etc/docker/daemon.jsonBenutzer config:
~/.docker/config.json
Tipp
Die verschiedenen Konfiguratione möglichst nicht mischen/kombinieren!