This is draft

Fragen zur Containerlösung Docker

Wie bringe ich zum Beispiel mit ein Paar Befehlen unter Ubuntu einen Apache mit Docker zum Laufen und lasse ihn idealerweise auf Port 80 lauschen?

Achtet darauf, dass Ihr nicht versehentlich die X11-Hilfsanwendung mit dem Paketnamen docker beziehungsweise wmdocker installiert.

Wie erreiche ich es, dass ich vor den Befehl docker nicht jedes Mal ein sudo setzen muss?

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.

Für welche Betriebssysteme und Prozessorarchitekturen gibt es Docker?

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.

Wer entwickelt Docker?

Docker wird seit Anfang 2013 von Docker Inc. entwickelt, die damals noch als dotCloud firmierten.

Unter welchen Lizenzen steht Docker? Ist Docker Freie Software? Ist Docker Open Source

Docker von Docker Inc. steht unter verschiedenen FOSS-Lizenzen, wie der Apache-2.0 Lizenz, aber auch GPL-2, verschiedene Varianten der BSD-Lizenz, der Expat-Lizenz und anderen.

Ist Docker kostenlos?

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.

Läuft z.B. meine Spotify Desktop-App in Docker?

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.

Wie kapselt Docker einen Dämon?

Was ist ein Dockerfile

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.

Was sind Images und Volumes?

Was sind Linux Namespaces?

Was sind Linux cgroups?

Was macht chroot?

Was ist der Unterschied zu "voller" Virtualisierung?

Emuliert Docker Systembibliotheken?

Emuliert Docker ein Betriebssystem?

Kann ein Dämon im Container auf Ressourcen des Wirtssystems zugreifen?

Kann ich Anforderungen von Ressourcen durch den Dämon limitieren?

Welche Vor-/Nachteile hat Docker?

Wie steht es bei Docker mit der Sicherheit?

Wie kann ich Docker herunterladen und installieren?

Warum wird z.B. in top unter Linux mein Dämon mit einer numerischen UID, zu der es in /etc/passwd keinen Benutzernamen gibt, oder mit einem falschen Benutzernamen angezeigt?

Was macht ein Hypervisor?

Was ist Hyper-V?

(Warum stört Hyper-V VirtualBox?)

Was ist der Unterschied zwischen einem Image und einem Container?

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.

Wie ist ein Image aufgebaut? Wie unterscheiden sich Images für GNU/Linux, natives Windows, OS X und andere Unices?

Was ist eine Registry?

Was ist Docker-Hub?

Welche Alternativen gibt es?

Wo kann ich weiterlesen/Quellenverzeichnis?

Florian Rehnisch <fmr@sdf.org>, 2021-06-05T06:32+0200