Kategorien
Allgemein

Wie man Services auf eine moderne Art und Weise unter Linux installiert.

Dafür wird Docker benötigt. Und am besten auch ein Server, welcher richtige Last auch aushalten kann. Damit meine ich einen richtigen Server und keinen Raspberry Pi 4, weil dieser nicht genug Kraft hat, alle diese Services laufen zu lassen. Ja, natürlich ist ein Raspberry Pi 4 ein Server, jedoch nicht für Docker oder ähnliche CPU- und RAM-lastige Aufgaben, weshalb es dazu kommen kann, dass man unter Docker nen schlechteren Erfolg hat auf einen Raspberry Pi 4, als wie wenn man den Service direkt auf normaler Art und Weise mit Linux installiert. Natürlich, wie schon gesagt, zieht Docker ein bisschen von der CPU und dem RAM als Blindleistung, jedoch ist was rauskommt, hinterher viel einfacher zu warten und zu ugraden

Installieren von Docker

Um nun erstmal überhaupt zu Starten, brauchen wir Docker, da Docker einen eigenen Artikel gemacht hat, wie man dieses installiert, werde ich dazu nicht genauer ins Detail bei andereren Distributionen unter Linux gehen. Da mein Server unter Fedora läuft, werden wir Docker dafür Installieren mit den folgenden Befehlen: (Achtung, hier wird davon ausgegangen, dass ihr root seit, wenn nicht, könnt ihr Docker nicht installieren. wenn ihr sudo-Rechte habt, werdet ihr über: sudo -i root.)

dnf -y install dnf-plugins-core

Dies installiert ein programm, womit man die Repositories für DNF managen kann.

dnf config-manager \
    --add-repo \
    https://download.docker.com/linux/fedora/docker-ce.repo

Hiermit wird die Docker-Repository hinzugefügt.

dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Hiermit installieren wir Docker. Zusätzlich wird auch gleichzeitig das compose Plugin für Docker installiert wird, was nicht zwingend notwendig ist, aber sinnvoll zu haben

Services laufen lassen mit der Hilfe von Docker Compose

Natürlich habe ich oben gesagt, dass Docker Compose nicht zwingend notwendig ist, jedoch ist es viel einfacher und wartungsfreundlicher die Container mit Docker Compose zu verwalten. Für den Test werden wir den Service rollter von thedmdim und den Service cloud-torrent von jpillora laufen lassen.

Um unsere docker-compose.yml zu erstellen, brauchen wir jedoch jetzt einen Ordner, ich würde empfehlen, diesen unter dem / Verzeichniss zu erstellen, also: /docker. Diesen zu erstellen geht relativ einfach: sudo -i, mkdir /docker und cd /docker.

Nun erstellen wir unsere docker-compose.yml mit Vim, weil vim gleich Syntax-Highlithing hat, und zu dem die Tabs für yaml richtig formatiert. (Wichtig: Vim beendet man mit :q! und speicher und beenden tut man mit: :wq) Folgender Befehl für vim: vim docker-compose.yml

Nun fügen wir folgendes für den Test ein:

version: '3.9'
services:
    rollter:
        container_name: rollter
        environment:
            - VPN_IPSEC_PSK=your_ipsec_pre_shared_key
            - VPN_USER=your_vpn_username
            - VPN_PASSWORD=your_vpn_password
        ports:
            - '500:500/udp'
            - '4500:4500/udp'
        privileged: false
        image: thedmdim/rollter

    cloud-torrent:
        ports:
            - '3000:3000'
        volumes:
            - '/docker/torrents/downloads:/downloads'
        image: jpillora/cloud-torrent
Leere docker-compose.yml
docker-compose.yml im Fertigen Format

Damit unsere Services jetzt nun final noch laufen, machen wir folgendes: docker compose up -d (wichtig: Damit dies funktioniert muss es als root im /docker ausgeführt werden)

Die Ausgabe sollte, dann ungefähr so aussehen:

Docker compose ausgabe, wichtig: kann variieren.

Testen zum Schluss

Nun werden wir nur noch testen, ob alle Services laufen, dafür navigieren wir im unserem Internet-Browser unserer Wahl einfach zu der IP des Servers auf Port 3000. Ein Beispiel wäre: http://192.168.1.114:3000/
Nun müssten wir dieses Bild sehen und dann hat alles funktioniert.