This is draft
…
Achtet darauf, dass Ihr nicht versehentlich die X11-Hilfsanwendung mit dem Paketnamen docker beziehungsweise wmdocker installiert.
Fügt Euren unprivilegierten Benutzer der Gruppe des Docker-Befehls
hinzu, unter Debian und von ihr abgeleiteten Linux-Distributionen
zum Beispiel mit
> sudo adduser ihrlogin docker
oder allgemeiner
> sudo usermod -aG docker ihrlogin
(Statt ihrlogin setzt Euren Benutzernamen ein).
Beachtet, dass die Gruppenzugehörigkeiten neu ausgewertet werden
müssen, bevor diese Änderung wirksam wird, zum Beispiel durch Aus- und
erneutes Einloggen.
Linux, Windows, OS X, FreeBSD
Bei Windows gibt es zwei Spielweisen: einmal Container-Images aus der Linux-Welt, die unter einer VM wie WSL2 ausgeführt werden, und zum anderen Container-Images, die nativ ausgeführt werden und nicht mit den Linux-Images kompatibel sind.
Docker wird seit Anfang 2013 von Docker Inc. entwickelt, die damals noch als dotCloud firmierten.
Es gibt die kostenlose Community-Edition von Docker Inc.
.Docker Inc. hat Ende 2019 das Enterprise Geschäft Docker Enterprise Engine, Docker Trusted Registry, Docker Unified Control Plane und Docker CLI an den Cloud-Dienstleister Mirantis verkauft.
Docker richtet sich an Netzwerk- und Server-Anwendungen und ist nicht für graphische Desktop-Anwendungen geeignet.
Es gibt aber graphische Benutzeroberflächen zur Steuerung des Docker-Dämons, z.B. Kubernetes.
Ein Dockerfile ist eine Textdatei, die ähnlich einem Shell-Skript eine Folge definierter Anweisungen enthält. Mithilfe dieser Anweisungen erstellt der Befehl docker build> die Image-Datei, aus der der Befehl docker run schließlich den laufenden Container-Prozess startet.
Meist beginnt ein Dockerfile mit einer Zeile wie FROM debian. Dies leitet das zu erstellende Image von einem bestehenden her; im Beispiel eine Minimalinstallation der Linux-Distribution von Debian, die Systembibliotheken und einige Hilfswerkzeuge wie die Bash oder den Paketmanager APT enthält.
Darauf können Shell-Anweisungen folgen, die zusätzliche für den Dienst benötigte Pakete und Abhängigkeiten installieren. Diese müssen nicht-interaktiv formuliert werden, damit der Bauprozess des Images automatisiert erfolgen kann.
Danach folgen Anweisungen, die beispielsweise Ports zur Aussenwelt und zu anderen gleichzeitig laufenden Containern öffnen und festlegen wie Volumes für persistente Daten eingebunden werden. Zum Beispiel benötigt Wordpress neben einem Httpd wie Apache2 auch eine Datenbank wie MySQL
Am Schluss steht eine CMD-Anweisung, die ein bestimmtes Standardverhalten definiert.
Für jede dieser Anweisungen im Dockerfile wird eine Schicht, ein sogenanntes Layer in der Imagedatei angelegt. Diese kann aus einem Delta oder auch nur aus Metadaten bestehen.
Ein Image ist eine Datei mit (Binär-)Daten, die zum Ausführen der Serveranwendung von Nöten sind, ein Container ist eine laufende Instanz des Dienstes, die vom Docker-Dämonen verwaltet wird.
Florian Rehnisch <fmr@sdf.org>, 2021-06-05T06:32+0200