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