Docker-Compose auf Unraid

Änderungsstand: 2021-12-15

Fazit am Anfang des Guides.

Ja, es ist schon eine angenehme Sache, Docker-Compose auf uNRAID zu verwenden. Allerdings gibt es einige Sachen, die dazu drängen, vielleicht doch noch etwas Abstand davon zu halten. Es sind Ereignisse aufgetreten, die nicht immer präsent waren, aber hin und wieder auftraten. In den 2 weiteren Guides, worin die Erstellung eines Compose-Stacks auf zwei verschiedenen Wegen erklärt werden, lief nicht alles so rund, wie es eigentlich sein sollte. Ich möchte die Ergebnisse jetzt schon erzählen, weil es durchaus sein kann, dass vielleicht der Eine oder Andere lieber Abstand davon hält.

  1. Es gibt immer mal wieder Probleme nach einem Neustart des Servers, indem sich der Stack zwar automatisch initialisiert aber z.B. Redis im Stack nicht mit geladen wird. Abhilfe schafft ein manuelles Restarten des Stacks.
  2. Ein automatisches Updaten der Images im Stack ist momentan noch nicht möglich. Kann durchaus sein, dass ich es noch nicht herausgefunden habe, aber per Script schaffte ich es nicht, eine Automatisierung hinzubekommen. Unraid kennt eigentlich Docker-Compose nicht. Daraufhin funktionieren auch die Docker-Compose Befehle in der bash nicht.

Aber es gibt auch Vorteile, die ich nicht vorenthalten möchte.

  1. Das Erstellen eines Stacks geht leichter und schneller von der Hand, als die einzelnen Docker in Unraid einzufügen und zu konfigurieren. Natürlich sollten gewisse Vorkenntnisse diesbezüglich vorhanden sein. Jemand der keine Vorkenntnisse hat oder mit Scripterstellung nichts zu tun haben will, wird vielleicht bei den einzelnen Unraid-Docker besser aufgehoben sein.
  2. Benutzer, die wirklich jede Millisekunde an Geschwindigkeit bemerken, werden hier eher die Compose-Variante verwenden. Ein erstellter Stack arbeitet durchaus schneller und vielleicht sogar effektiver, als viele einzelne Docker, die in Unraid erstellt und miteinander verknüpft werden. Wobei ich fast schon sagen möchte, das Script-User eigentlich kein Unraid verwenden. Viele meiner Kollegen benutzen hierfür Proxmox oder – und jetzt haltet Euch fest 🙂 – Openmediavault.

Ich, für meinen Teil, habe es getestet und entschieden, dass es momentan besser ist, Abstand davon zu halten. Wenn Unraid dieses Feature irgendwann einmal einfügt, bin ich natürlich dabei. Ich gehe bis dahin den anderen Weg über eine VM, in welcher ich ausgewählte Compose-Stacks ausführe. Auch aus einer VM heraus kann ich Freigaben des Array problemlos verwenden. In Sachen Geschwindigkeit habe ich da keine Nachteile und ich muss mich nicht mit den Sachen, die ich anfangs erwähnte, herumärgern.

Wer jetzt immer noch Lust verspürt, Docker-Compose auf Unraid zu verwenden, kann nun loslegen 🙂 .

Docker-Compose in Unraid installieren.

Dazu starte ich folgenden Befehl:

alias docker-compose='docker run --rm \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v "$PWD:$PWD" \
    -w="$PWD" \
    docker/compose:latest'

Alles zusammen (komplett) kopieren und im Unraid-Terminal einfügen und Enter drücken. Anschließend:

docker-compose up -d

Ich musste diesen obligatorischen Befehl verwenden. Es wird zwar eine Fehlermeldung am Ende aufgeführt, was auch normal ist, weil noch keine Compose-Datei vorhanden ist, aber ohne diesen Befehl startete der vorherige Befehl nicht. Kann auch sein, dass ich nur etwas ungeduldig war.

Mit folgendem Befehl kann man schauen, ob es funktionierte. Es wird die vorhandene Docker-Compose-Version angezeigt:

docker-compose --version

Als Ausgabe erhalte ich:

docker-compose version 1.26.2, build eefe0d3

Jetzt werde ich ein Script ändern, damit Docker-Compose auch nach einer erneutem SSH-Verbindung verfügbar bleibt (das ist aber immer noch „nur“ temporär und nach einem Neustart nicht automatisch drin):

sudo nano /root/.bash_profile

Folgendes füge ich am Ende ein:

#
#docker-compose as container
alias docker-compose='docker run --rm \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v "$PWD:$PWD" \
    -w="$PWD" \
    docker/compose:latest'
#

Strg-x, y, Enter

Nun die Einträge, damit auch nach einem Reboot Docker-Compose verfügbar ist:

nano /boot/config/bash_extra.cfg

Folgendes füge ich ein:

#docker-compose as container
alias docker-compose='docker run --rm \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v "$PWD:$PWD" \
    -w="$PWD" \
    docker/compose:latest'

Strg-x, y, Enter

nano /boot/config/go

Folgendes füge ich dort am Ende ein:

# Customise Docker-Compose bash
cat /boot/config/bash_extra.cfg >> /root/.bash_profile

Strg-x, y, Enter

Fertig. Ab jetzt ist Docker-Compose auch nach einem Reboot verfügbar. Ich prüfe das noch einmal. Server neu starten und dann im Terminal:

docker-compose --version

Als Ausgabe erscheint wieder:

docker-compose version 1.26.2, build eefe0d3

Alles in Ordnung.

Quelle:

https://forums.unraid.net/topic/91436-is-docker-compose-available-on-unraid/

Erstelle eine Website wie diese mit WordPress.com
Jetzt starten