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
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:
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.