Linux

Verschiedene Installationen in meinen Seminaren zeigen die native Kombination aus Linux Container Host und Linux Containern.

Früher oder später - ehrlich gesagt eher früher ;-) - stellt man fest dass viele Docker / Container Umsetzungen sich nur unter Linux wohl fühlen - also problemlos funktionieren.

Insbesondere viele Versuche mit mehreren vernetzten Containern streiken gerne mal in einer improvisierten Non-Linux-Container OS Umgebung.

Statt einem Docker Desktop für Linux können wir auch die klassische Installation der Docker Engine nutzen. Die Umsetzungen erstellen unterschiedliche Context für Docker (siehe docker context ls) und werden bei der Installation des Docker Desktop für Linux beide installiert.

Install Docker Engine on Linux

Install Docker Engine on Linux

Docker Engine vs. Docker Desktop

Ich empfehle für den Einstieg immer die individuelle Installation der klassischen Docker Engine. Diese Umgebung sollte man dann testen und und hat eine vorbereitete Maschine für den nachinstallierbaren Docker Desktop.

Die Firma Docker empfiehlt die Installation des Docker Desktop aus folgenden Gründen:

  • Einheitliche Entwicklerplattform auf Windows, Mac und Linux über den Docker Desktop

  • GUI mit Erweiterungen und Zusatzfunktionalitäten der Docker Technik und Docker Umgebung

  • Eine mögliche One-Klick-Installation inklusive der Docker Engine - da werde ich allerdings immer unruhig ;-)

  • Einfache Aktualsierung und Behebungen für Security Topics (siehe auch Docker Scout)

Ich lasse die Topics hier einfach mal stehen. Wir werden uns mit der sozusagen Rohinstallation der Docker Engine beschäftigen, weil serverseitig das auch die Standardvorgehensweise ist.

Im Idealfall zeige ich auch die sehr ressourcenarme Umsetzung einer Docker-Umgebung mit LXC-Containern auf ProxmoxVE.

Enterprise / Company vs. Community

Wir haben eine riesige Auswahl an Linux Distributionen und auf nahezu allen Distros lassen sich Docker und Co - also Docker Compose, Podman bis hin zu Kubernetes - installieren.

Wie wählt man also aus? Die meisten Firmen sind über die Jahre bei Distros hängengeblieben. Fragen Sie mal bei Firmen, die viele Jahre CentOS geschäftsmäßig eingesetzt haben und jetzt vor teils großen Problemen stehen.

In meinem Seminarumfeld orientiere ich mich bei Firmenschulungen an den dortigen Umgebungen: wird Red Hat eingesetzt machen wir Red Hat, wird Suse eingesetzt machen wir Suse…

Für meine Schulungen habe ich mich nach den Erfahrungen der letzten Jahre (s. a. o.) nach folgenden Unterscheidungskriterien orientiert:

  • Enterprise Distros - die teuere (nicht kostenlose) und oft nicht mal quell-offenen Distributionen - Marktführer in diesem Segment: RHEL, SLES

    Analyse: ich will zwar genau wissen, wie diese Distros funtkionieren; aber: Einsatz in Seminaren oder auch persönlichem Umfeld nur eingeschränkt möglich oder clever!

  • Company driven Distros - Linux Distributionen, die maßgeblich von Firmen und deren Interessen unterstützt werden

    Auswahl: Red Hat CentOS oder auch Fedora, Suse openSUSE / Tumbleweed, Canonical Ubuntu

    Analyse: ich bin als Techniker wieder sehr interessiert; aber: die Abhängigkeit von Entwicklungen und die Willkür bei Entscheidungen sowie die LTS Zuverlässigkeit ist zumindest sehr getrübt

  • Community Driven Distos - also Linux Distributionen, die ausschließlich mit Open Source Charakter im Netz gepflegt und entwickelt werden - Communities eben!

    Auswahl: Debian - seit über 3 Jahrzehnten der Ursprung für viele Derivate; mit Debian 12 Bookworm Öffnung für Firmware Unterstützungen aktuellerer Hardware!

Andere Nennungen:

Arch Linux - die Rolling Release Variante mit Top Softwareunterstützung; im Grunde aber Nischendasein mit hohem Nerd-Potential („BTW - i use Arch“)

Gentoo - der absolute Programmierer/Coder Dream und wer hat eigentlich Bock und Zeit mal eben 3 Stunden auf den neu kompilierten Firefox zu warten?

Die Wahl fällt bei mir also seit sehr langer Zeit auf Debian und wir wollen in unseren Docker Seminaren ebenfalls von Debian profitieren.

Aus Vereinfachungsgründen lasse ich häufig Standardinstallationen von Debian inklusive Standard Desktop Environment (DE) Gnome durchführen.

Mit Desktop Umgebung lassen sich vielen Übungen dann einfacher direkt mit der Debian Maschine durchführen.

Distribution nach Hersteller

Hier folgen weitere Anmerkungen zu Linux-Distros.

  • Debian (oft Standard-OS für Services im Internet)

    Install-Anleitung auf docs.docker.com: https://docs.docker.com/install/linux/docker-ce/debian/

  • CentOS - Vertreter Red Hat OS - war seit 2019 der Platzhirsch für Container

    Allerdings seit Umsetzung als Quasi-Rolling-Release (CentOS Stream) nicht mehr gut für Enterprise Umsetzung geeignet. Alternative: Alma Linux / Rocky Linux oder das recht frische Liberty Linux von Suse.

    Install-Anleitung auf docs.docker.com: https://docs.docker.com/install/linux/docker-ce/centos/

  • openSUSE (Vertreter Novell SLES und über Jahrzehnte in meinen Seminaren)

    Installation: (Versionen vorher checken!)

    per zypper installieren oder besser/aktueller über Build-Service Versuchspakete Virtualization:Container

    https://software.opensuse.org/package/docker

    Probleme möglich: z.B. Netzwerk/DNS - genauer: Bei Nutzung von Docker-DNS-Servicen - andere/normale funzen! siehe z.B.: Robin Winslow - fix docker

Generell eignen sich alle Linux-Distros für eiese Umsetzungen. Sehr häufig wird in diesen Zusammenhängen natürlich auch der Ubuntu Server genannt, der auf Grund seines LTS Charakters diverse Vorzüge verspricht.

Inbetriebnahme / Check

Die Nutzung der Docker Umgebung ist unter den Linux Distros immer gleich.

Hinweis

Bitte überprüfen, ob der Docker Daemon läuft und enabled ist für Standard-Target/Runlevel! Des Weiteren achtet man auf laufende Firewalls oder Security-Tools wie Selinux/Apparmor.

Alle Aufrufe (hier folgend) und dann auch für docker sollten mit root-Rechten durchgeführt werden.

systemctl status docker.service
systemctl start docker.service           # oder gleich
systemctl enable docker.service --now    # enable und start
docker version

Im letzten Aufruf müssen Client und Server aufgelistet sein.

Im Seminar wird auch der Standarduser für docker berechtigt werden, um die tägliche Seminar- und Schulungsarbeit zu erleichtern.

Hierfür muss manchmal die Gruppe docker neu erstellt werden

groupadd docker    # falls noch nicht vorhanden und nicht mit dockerroot (CentOS) verwechseln
usermod -aG docker standarduser

Bitte bei der obigen Syntax unbedingt auf die korrekte Schreibweise der Gruppenzuordnung (Parameter a mit Groß G) achten!

Gefahr

Docker mit Standarduser kann ein großes Sicherheitsrisiko darstellen! Darstellungen hierzu folgen!