(9) Docker & Portainer – Virtuell in einer virtuellen Umgebung

Was wollen wir?

Docker sind einzelne Linux Container mit vorgefertigten Server Konfigurationen. Wir wollen also vorgefertigte kleine Linux Server für einen bestimmten Anwendungszweck. Auf https://hub.docker.com werden hier zahlreiche fertige Lösungen angeboten.

Warum wollen wir das?

Die Container sind schnell installiert und meist sofort einsatzbereit. Während bei einer klassischen virtuellen Maschine jede sein ein eigenes Betriebssystem startet, teilen sich Docker-Container den Kernel des Host-Systems. Das macht sie auch schnell und schlank.

Die Daten innerhalb des Containers sind dabei nur so lange vorhanden bis der Container gelöscht wird. Da ein update des Systems meist mit dem erneuten herunter laden des Containers verbunden ist, müssen fest eingestellte Daten und Konfigurationen ausserhalb des Containers gespeichert werden, dazu werden lokale Verzeichnisse mit den Verzeichnissen im Container verknüpft.

Auch die verwendeten Ports zur Steuerung der Container kann man so umleiten, dass zur Systemseite immer neue Ports zur Verfügung stehen. Beispiel: Man will 5 Container installieren die jeweils einen Webserver auf Port 80 bereit stellen. Jedem der Container wird nun ein anderer Port zugewiesen, z.b. 8081-8085, im jeweiligem Container selber wird der Port 80 angesprochen. Somit sind alle Webserver zu erreichen und die Ports kommen sich nicht in die Quere.

Eine sehr ausführliche Erklärung und Anleitung findet Ihr auf der Webseite von IONOS

Da die meisten Eingaben auf der Kommandozeile stattfinden und gerade Anfänger sich damit noch schwer tun, installieren wir direkt zum üben Portainer mit. Dieser Docker bietet eine grafische Weboberfläche zum Verwalten seiner Docker

Und wie genau geht das?

Wir fangen wieder mit einem Linux LXC Container auf Proxmox an, diesmal mit einem Ubuntu 20.04 Betriebssystem.

Auch hier findet man ein ausführliche Anleitung direkt bei Docker

Als erstes starten wir unser neues Linux und machen frische updates

sudo apt update && sudo apt dist-upgrade -y

Nach einem Reboot loggen wir uns wieder ein und installieren ein paar Programme, bei der Frage ob wir wirklich installieren wollen, bestätigen wir mit „Y“ (Yes).

apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

apt-key fingerprint 0EBFCD88

Wir tragen nun die Quelle in die Sources.list ein

sudo nano /etc/apt/sources.list

In der Liste fügt Ihr

# deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable

deb [arch=amd64] https://download.docker.com/linux/ubuntu eoan stable

# deb-src [arch=amd64] https://download.docker.com/linux/ubuntu focal stable

ein und speichert den File wieder ab (control&X, dann y und Enter)

Nun installiert Ihr Docker

sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io

sudo apt-get update

Jetzt müssen ein Paar Verzeichnisse verschoben werden

service docker stop

mkdir /mnt/HDD/Docker

mv /var/lib/docker /mnt/HDD/Docker

ln -s /mnt/HDD/Docker /var/lib/docker

Wir bereiten nun die Portainer Installation vor und führen sie durch

mkdir /mnt/HDD/portainer

mkdir /mnt/HDD/portainer/data

service docker start

docker run -d -p 9000:9000 -p 8000:8000  --name portainer --restart always -v /mnt/HDD/portainer/data:/data -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer-ce

Der Befehl „docker run“ zeigt bereits wie docker funktioniert, hinter dem run kommt ein „-d“, der docker wird damit als Damon gestartet, also als Dienst ausgeführt. „-p 9000:9000 -p 8000:8000“ schaltet die Ports von z.b. lokal 9000 auf Ziel 9000 mit „–name“ wird der Name des Dockers gesetzt und mit „–restart always“ sagt man dem Docker das er immer wieder neu startet falls der mal beendet wurde. Mit „-v /var/run/docker.sock:/var/run/docker.sock“ wird die lokale Datei /var/run/docker.sock mit der Datei /var/run/docker.sock auf dem Docker verknüpft. Der letzte Teil „portainer/portainer-ce“ beschreibt wie das Docker heisst welches man haben möchte, falls es noch nicht heruntergeladen wurde startet sofort automatisch der download.

Mit dem Befehl

docker ps

prüfen wir ob der Container läuft und mit

systemctl enable docker

fügen wir Docker zum Autostart hinzu. Nun noch schnell die IP des servers heraus gefunden mit

ip addr

und schon kann Portainer aufgerufen werden mit

http://IPdesServers:9000

Hier erstellt man nun einen Benutzer mit einem Passwort und klickt auf weiter.

im nächstem Fenster klickt man auf Docker und Connect.

Um schnell zu starten geht auf Settings und fügt bei „App Templates“ ein:

https://raw.githubusercontent.com/nashosted/self-hosted-template/master/template.json

Nun findet Ihr links im Menü bereits zahlreiche Vorlagen unter „App Templates“

Das war es schon, mit klick unten in der Mitte auf local und dann auf Container sieht man bereits den Container „Portainer“ den wir gerade installiert haben.

Weitere Infos bekommt Ihr:

https://blog.ordix.de/portainer-was-kann-die-gui-fuer-docker

 

Dieser Beitrag wurde unter HomeLab, Proxmox abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.