Docker: BitTorrent Sync mit externem Share

Docker: Bittorrent Sync

Zugegeben, Docker hat es mir etwas angetan.
Ich habe ein Repository erstellt, das hoffentlich dazu bewegen kann, das wundertolle BitTorrent Sync auszuprobieren.
Ob BitTorrent Sync sich allerdings für externe Netzwerke eignet, lasse ich dahin gestellt. Synchronisierte Dateien werden unverschlüsselt und lesbar in den Ziel-Ordner geschrieben. Versteht mich nicht falsch, das kann durchaus von Vorteil sein.
Außerdem ist bei dauerhaftem Gebrauch, der Einsatz eines Reverse Proxy sicherlich nicht verkehrt…

Zu Beginn wie üblich, die Installation:

Installation Dockers

Debian Wheezy

Installation des Kernels aus dem Backport Repository mit anschließendem Neustart.
Dies ist notwendig, da erst ein Kernel ab Version 3.10 empfohlen wird.

echo deb http://ftp.us.debian.org/debian wheezy-backports main > /etc/apt/sources.list.d/wheezy-backports.list
apt-get update -y
apt-get -t wheezy-backports install linux-image-amd64 -y # Für ein amd64-basierendes System
reboot
OVH VMware vServer Besitzer sollten die Datei „/etc/grub.d/06_OVHkernel“ vor dem Neustart löschen und „update-grub2“ ausführen, damit der neue Kernel aktiv wird.
Der OVH Kernel ist leider etwas beschnitten und bietet unter anderem keine cgroups.

Nun Docker installieren (lassen). Vorab „curl“ installieren:

apt-get install curl
curl -sSL https://get.docker.io/ | bash

Ubuntu 14.04

Ich empfehle den Docker Installer zu verwenden. Es wird das offizielle Repository installiert. Auch hier im Vorfeld „curl“ installieren:

apt-get install curl
curl -sSL https://get.docker.io/ubuntu/ | bash

BitTorrent Sync im Container

Nun der interessante Teil, ich halte ich mich kurz.

Zu Beginn muss das Verzeichnis erstellt werden, das im Anschluss die synchronisierten Dateien beeinhalten wird.
Aber nicht nur das, auch wird der Besitzer des Verzeichnisses verändert; auf UID 9991.
Nein, der Benutzer ist nicht auf dem Host-System zu erstellen, stattdessen existiert er nur im Container. Allerdings wird das lokale Verzeichnis in diesen eingebunden, weshalb der Benutzer, der im Container „btsync“ ausführt, die entsprechenden Rechte benötigt:

mkdir /var/btshare ; chown 9991:9991 -R /var/btshare

Der Pfad ist frei wählbar, für den Artikel entscheide ich mich für obigen.

Mit nur einem Befehl wird das Image heruntergeladen (wenn noch nicht vorhanden) und gestartet:

docker run --name "btsync" -d -p 8888:8888 -p 8889:8889 -v /var/btshare:/btsync/data andryyy/btsync

Kurz zu den Parametern:

  • -d – Startet den Container „detached“, also im Hintergrund
  • -p HOST:CONTAINER – gibt einen Port aus dem Container an den Host weiter. Hier sind dies Port 8888 für die Webui und 8889 für die Datenübertragung!
  • -v HOST:CONTAINER – Bindet ein Verzeichnis vom Host in den Container ein
  • –name – Ein eindeutiger Name. Wird keiner angegeben, wird ein Name generiert
Wenn der Client im selben Netzwerk mit anderen btsync-Clients arbeitet, lohnt es sich die Ports 3838/udp sowie 3000/udp weiterzureichen.
Dafür einfach zwei weitere „-p“-Schalter an den „docker run“-Befehl anhängen: „-p 3838:3838/udp -p 3000:3000/udp“.

„run“ wird versuchen, das Image lokal ausfindig zu machen, es nicht finden und folglich aus dem Internet herunterladen. Zum Ende steht der Name des Repositorys.

Den Status des Containers überprüfen…

docker ps -a

…und via „host:8888“ in die Webui springen.

Das bestenfalls sofort tun, um einen Administrator einzurichten und den Zugang damit zu sperren.

Viel Spaß beim Ausprobieren von BitTorrent Sync, das Programm ist weitesgehend selbsterklärend.

Container verwalten

Bitte unbedingt in die offiziellen Dokumente Dockers‘ schauen, aber hier – wie immer – ein paar Basics:

Der Container kann jeder Zeit gestoppt, …

docker stop btsync

gestartet, …

docker start btsync

oder gelöscht werden:

docker rm btsync

Folgender Befehl löscht nicht nur den Container, sondern auch das Image:

docker rmi andryyy/btsync

2 Antworten auf “Docker: BitTorrent Sync mit externem Share

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.