Docker, Portainer und TailScale installieren

Es gibt diverse Möglichkeiten, diese drei Programme zu installieren. Ich beschränke mich hier auf die absolut notwendigsten Befehle und Schritte. Man kann darüber reden, ob rootless Docker nicht besser wäre. Aber diese Diskussion will ich jetzt nicht führen. Stattdessen halten wir es einfach und straightforward.

DOCKER:
Wir installieren Docker mit Root Rechten:
curl -fsSL https://get.docker.com/ | sh

Und checken das Ganze mit:
docker run hello-world

Wenn Alles glatt gelaufen ist, solltest Du jetzt in etwa Folgendes sehen:

Unable to find image ‚hello-world:latest‘ locally
latest: Pulling from library/hello-world
e6590344b1a5: Pull complete
Digest: sha256:424f1f86cdf501deb591ace8d14d2f40272617b51b374915a87a2886b2025ece
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:

  1. The Docker client contacted the Docker daemon.
  2. The Docker daemon pulled the „hello-world“ image from the Docker Hub.
    (amd64)
  3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
  4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

TAILSCALE:
Bevor wir weiter in die Tiefe mit Portainer gehen, installieren wir noch eben TailScale. Gleich verstehst du auch warum. Die einfachste Methode besteht aus:

# Schlüssel und Repo runterladen
curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list

# Installieren:
sudo apt-get update
sudo apt-get install tailscale

# TailScale hochfahren
sudo tailscale up

# Login und Authentifizierung bei TailScale
Du erhältst dann einen WebLink zum Login bei TailScale.

Bei Klick auf diesen Link kommst du zur Admin-Konsole von TailScale.

Du wirst aufgefordert, den Hostnamen in deinem TailNet zu bestätigen- Vorher schaltest du bitte Machine Key Expiry aus und klickst dann auf Approve.

Und schon hat dein Host eine FQDN innerhalb des geschützten TailScale VPN. Das Schöne daran: Du kannst für diesen Namen ein Let´sEncrypt-Zertifikat bekommen und automatisch erneuern lassen.

Da ich auch nur mit Wasser koche und ich eine wundervolle Anleitung gefunden habe und diese wertschätzend dir nun ans Herz legen möchte, guck einfach bei reddit vorbei …

PORTAINER:

Kommen wir zu Portainer. Meiner Lieblings-App zum Verwalten von Docker-Containern. Auch hier gilt: Kurz und einfach ist besser als verschachtelt und kompliziert. Es gibt nur drei Ausnahmen von dieser Regel: Erstens richten wir portainer_data auf einem festgelegten physikalischen Pfad, zweitens beschränken wir uns auf Port 9443 und drittens wählen wir die Business-Variante von Portainer. Die gibt es nämlich für 3 Nodes kostenlos.

docker run -d -p 9443:9443 \
    --name portainer --restart always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v /docker/portainer_data:/data \
    -v /etc/ssl/private:/certs \
    portainer/portainer-ee:lts \
    --sslcert /certs/host.ts-domain.ts.net.crt \
    --sslkey /certs/host.ts-domain.ts.net.key


Falls du dich gegen Tailscale und die ganzen Zertifikate entschieden haben solltest – gib die IP-Adresse des Servers ein, gefolgt von 9443. Zum Beispiel: https://192.168.1.20:9443. Nimm bitte tatsächlich https und akzeptiere für den Moment das unsichere Zertifikat. Rasch solltest du das tun, weil der Login mit Setzen des Passwortes nur für ein paar Minuten nach Installation aktiv ist.

Falls du bisher Alles so gemacht hast, wie es hier beschrieben ist: Gib https://hostname.tailnetnetworkname.ts.net:9443 ein und du wirst als Erfolg deiner bisherigen Arbeit ein sicheres SSL-Login zu Portainer erhalten.

Das sollte dann so aussehen:

Solltest du aus Gründen doch ein bisschen zu langsam gewesen sein, dann siehst du dies hier:

Entspann dich und gib ein:

sudo docker restart portainer

Dann kannst du den User endlich anlegen.

Danach musst du noch den Lizenzkey von Portainer BE eintragen. Ich empfehle dir, den og. Link frühzeitig anzuklicken und den freien Key zu bestellen. Es kann nämlich dauern, bis der da ist. Falls du ohnehin keine Business-Variante brauchst, ersetzt du im obigen Aufruf einfach portainer/portainer-ee:lts durch portainer/portainer-ce:lts .

Einen Klick weiter landest du direkt auf der Administrationsoberfläche von Portainer. Das sieht dann so aus:

Ein Klick auf Get Started bringt dich zur lokalen Umgebung.

JETZT. Genau jetzt ist der Moment für eine beherzte Datensicherung. Mach einen Snapshot, mach einen Dump, ein Image. Ganz gleich, wie du das machst. Aber tu es jetzt. Solltest du meinen freundlichen Rat an dieser Stelle ignorieren: Kein Problem. Aber mache dich darauf gefasst, dass du dadurch sehr viel Zeit verlieren kannst, nämlich die ganze Zeit, die du bisher hier investiert hast. Also: mach eine Datensicherung.

In Proxmox klickst du auf Backup im Container. In Unraid machst du einen Snapshot. Das ist das mindeste. Hast du auf einem physischen Server installiert, nimm rclone oder Borg oder Duplicati. Es ist mir egal. Aber mach jetzt ein Backup!

Ich habe in meinem Tutorial auf Unraid einen Snapshot gemacht und kopiere den gesamten LXC Container zu einem neuen LXC mit dem Namen OpenCloud. Mit diesem – und nur mit diesem – arbeite ich weiter.

Das einzige, was du dabei beachten musst, steht hier und hier.

Kommentar verfassen