Docker
Docker: was ist das?
Docker ermöglicht es bestimmte Services oder Dienste als Container zu starten. Ein Container besteht aus bestimmten Software-Images, welche aus dem Internet geladen und vom Betriebssystem und voneinander isoliert gestartet werden können.
Für die Netzwerkkommunikation mit dem Container können bestimmte Netzwerk Ports außerhalb des Containers zur Verfügung gestellt werden. Bestimmte Ordner innerhalb des Containers können in das Host-Betriebssystem umgeleitet werden, um die Daten persistent zu machen. (Damit diese bei einem erneuten Provisionieren des Containers nicht verloren gehen)
Als Beispiel könnte ein Docker-Container für das Bereitstellen einer Datenbank die Datenbankfiles und deren Konfiguration in das lokale Dateisystem schreiben. Die eigentliche Datenbank läuft dabei nach dem Download der Software-Images isoliert im Container und ist von außen über einen Netzwerk Port erreichbar, z.B. „localhost:1433“. Die Daten der Datenbank liegen im lokalen Dateisystem, die Software-Images können mit neuen Image-Versionen getauscht werden.
Voraussetzungen

Docker-Container unter Linux starten: verwende Docker Engine
Eine Anleitung für die Installation von Docker ist auf der Herstellerseite zu finden. Für Debian / Ubuntu habe ich die Installation wie folgt durchgeführt. ... weiterlesen

Docker-Container unter Windows 10 starten: Docker Desktop
Docker-Container können mittlerweile auch unter Windows betrieben werden, dazu ist im Wesentlichen nur die Installation des „Docker Desktop“ notwendig. ... weiterlesen

Traefik: Datenverkehr auf einen anderen Server weiterleiten
Als Vorbereitung für das Übersiedeln meiner Websites habe ich nach einer Möglichkeit gesucht den kompletten Datenverkehr vom alten Server einfach auf den neuen weiterzuleiten. ... weiterlesen

Webserver mit Docker Container umziehen, Theorie und Praxis
Wer einen virtuellen Server oder Cloud-Server mietet, muss diesen für ein neues Betriebssystem von Zeit zu Zeit austauschen. Spätestens, wenn für das Betriebssystem keine Updates mehr zur Verfügung gestellt werden, ist ein Serverwechsel unausweichlich. Vor einiger Zeit habe ich alle Websites auf Docker-Container umgestellt, was den Umzug beschleunigen soll. Zunächst etwas Theorie zu meinen Überlegungen, dann wie mein Serverumzug zuletzt vonstattenging. Zusätzli... ... weiterlesen

Traefik und oAuth: Eigene Webservices mit Google anmelden.
Die Sicherheit eines Webservice ist wesentlich von dessen Benutzeranmeldung abhängig. Sollte ein Webservice keine eigene Benutzeranmeldung besitzen, kann beim Einsatz des Traefik-Reverse Proxy einfach eine Anmeldung vorgeschaltet werden. Der Zugriff auf das eigentliche Webservice wird damit erst erlaubt, wenn die Anmeldung am Reverse Proxy erfolgreich war. Die einfachste Variante für eine vorgeschaltete Anmeldung ist eine Basic-Authentifizierung. Etwas aufwändiger, aber... ... weiterlesen
Docker Befehle, Funktion und Betrieb

Docker-Befehle in der Praxis
Docker Container können mittels Terminal-Befehle gestartet, upgedatet und verwaltet werden. In dem Beitrag notiere ich Befehle, die ich bisher für Docker benötigt habe und entsprechende Beispiele dazu: ... weiterlesen

Docker Daten speichern: Docker Volumes vs. Host-Ordner
Ich betreibe eine handvoll Docker Container auf einem einzelnen Linux-Host. Docker-Container werden bei einem erneuten erstellen oder beim Austausch auf eine neuere Imageversion bekanntlich ausgetauscht und verlieren dabei alle geänderten Daten. Um bestimmte Ordner eines Containers permanent zu speichern, müssen diese über Volumes oder Bind-Mounts ausgelagert werden. Ich habe dazu meist bestimmte Pfade der Container in definierten Ordnern am Host verbunden (Bind-Mounts). Mit ein Grund für die Ve... ... weiterlesen
Praxis: Backup Docker Container-Daten: Volumes / Bind Mounts
In meinem Artikel „Alle Docker-Container: Host übersiedeln, Theorie und Praxis“, bin ich bereits ein klein wenig auf das Thema Backup eingegangen. Wer den Artikel verfolgt hat, weiß, dass ich die Daten meiner Docker-Container über Bind-Mounts auslagere und mit rsync sichere. Gestartet wird der Backup-Job über crontab. Doch zunächst habe ich mir Gedanken gemacht, was beim Einsatz von Docker in einem Single-Server-Setup eigentlich gesichert werden muss: ... weiterlesen

Docker Compose vs. Docker Swarm: verwenden und verstehen
Mit Docker Swarm können Nodes (Hosts) zu einem gemeinsamen Verbund zusammengefasst werden. Dies ermöglicht es Container in einer beliebigen Anzahl von Instanzen auf einer beliebigen Anzahl von Knoten (Hosts) im Netzwerk zu betrieben. Die Basis für die Kommunikation zwischen den Hosts bildet in Docker Swarm ein Overlay-Netzwerk für die Services: Multi-host networking. Wie in meinem Artikel zum Webserverumzug bereits angedeutet, habe ich Docker Swarm als mögliche Option f&... ... weiterlesen

Docker Swarm, Portainer und Traefik kombiniert
Wie bereits mehrfach auf dieser Seite erwähnt, verwende ich für den Zugriff auf meine Docker-Container primär den Reverse-Proxy Traefik. Um die Container in einer grafischen GUI verwalten zu können, habe ich zusätzlich Portainer im Einsatz. Für einen Single-Server passt das Setup so weit, wer aber mehrere Server einsetzen will, kann dazu Docker-Swarm verwenden. Ich habe dazu zunächst Portainer in Kombination mit Swarm getestet und das Setup um Traefik inklusive... ... weiterlesen

Docker vs. Plesk, eine Alternative für den Betrieb von Websites
Jahrelang habe ich meine Websiten auf einem vServer von Host Europe betrieben und diese mithilfe von Plesk verwaltet. Obwohl Plesk immer gute Dienste geleistet hat, speziell beim Wechsel von einem Server zum Anderen, war die Umgebung am neuen Server dennoch nie gleich. Am neuen Server gab es immer wieder etwas zum Nacharbeiten und sei es nur das Installieren aller benötigten Software-Pakete. ... weiterlesen
Laravel in Docker betreiben: eigenes Dockerfile erstellen
Nachdem die meisten Laravel-Docker-Container entweder mittels des PHP-eigenen Webserver betrieben werden und Laradock nicht so ganz zu meiner Nextcloud-Docker-Umgebung gepasst hatte, hab ich mir den Applikationscontainer selbst gebaut. Mit ein Grund war die Anforderung Python in das Paket zu integrieren. ... weiterlesen
Laradock als Laravel Entwicklungsumgebung
Mit Laradock einfach eine Laravel Entwicklungsumgebung starten ... weiterlesen