Docker Setup - MaxTrautwein/TAR-Weiterentwicklung-IoT-Tor GitHub Wiki

Docker Development Setup

Dieser Guide zeigt Ihnen wie Sie eine Docker Development Umgebung für Node Red einrichten können.

Download Docker

Bitte folgen Sie den offiziellen Anweisungen unter: https://docs.docker.com/desktop/windows/install/

Dockerfile

Das Dockerfile ist eine Datei welche spezifiziert wie ein Container aufgebaut sein soll. Dies ermöglicht das Teilen eines speziellen Setups mit nur sehr wenig Daten.

Es stehen zwei Optionen zur Wahl:
(1) Im Falle, dass ein reguläres Setup zum Testen benötigt wird https://github.com/MaxTrautwein/TAR-Weiterentwicklung-IoT-Tor/blob/master/Docker/User/Dockerfile
(2) Im Falle, dass ein Setup für die Erweiterungen dieser Technikerarbeit benötigt wird https://github.com/MaxTrautwein/TAR-Weiterentwicklung-IoT-Tor/blob/master/Docker/Development/Dockerfile


Bitte laden Sie eine der beiden Dateien herunter.

Anschließend können Sie den Container nach dessen Spezifikation konstruieren. Öffnen Sie hierzu eine Kommandozeile in dem Ordner, indem sich das dokerfile befindet. Mit docker build -t nodereddev . wird der Container konstruiert.

Um den konstruierten Container zu starten führen Sie folgenden Befehl aus: docker run -p 1880:1880 -p 1883:1883 -p 123:123/udp --cap-add SYS_TIME nodereddev

Der Parameter -p bindet den Container Internen Port 1880 auf den lokalen Port 1880. Dies ermöglicht im folgenden den Zugriff auf das Node Red interface unter localhost:1880. Der zweite Aufruf gibt den Port für den Broker frei.

Der Parameter --cap-add erlaubt dem Container zusätzliche Rechte welche für den NTP Server benötigt werden.

Der run Befehl unterstützt auch noch weitere Parameter. Erwähnenswert ist hier der Parameter -v, dieser erlaubt es einen lokalen Pfad für den Container freizugeben. Unglücklicherweise ist dies mit einer Funktionalität, welche in diesem Setup benötigt wird inkompatible, weshalb es hier nicht verwendet wird.

Datenaustausch & Zugriff

Das Webinterface von Node-Red ist unter localhost:1880 verfügbar.
Um direkten Zugriff auf die Daten in dem Container zu erhalten, empfehle ich das Docker sowie das Remote Containers Addon für Visual Studio Code.

Um Weiterentwicklungen zu sichern, empfiehlt es sich, diese direkt mit git zu commiten und auf ein remote repository zu laden.

Logins

Es werden zwei Mosquitto User automatisch erstellt:

//Für Node-Red
user: nodered pw: nodered_pw
//Für Tasmota
user: tasmota pw: tasmota_pw

Für eine erfolgreiche Verbindung müssen diese bei Node-Red sowie Tasmota konfiguriert werden.

Problembehandlung

(Windows) Error response from daemon: Ports are not available

Vollständige Fehlermeldung:

docker: Error response from daemon: Ports are not available: listen tcp 0.0.0.0:1880: bind: An attempt was made to access a socket in a way forbidden by its access permissions.

Sollte dieser Fehler auftreten, so öffnen Sie ein Terminal mit Administratorrechten und führen Sie folgenden Befehl aus:

net stop winnat

Nun sollten Sie den Container starten können. Anschließend können Sie winnat wieder starten.

net start winnat

Quelle: https://github.com/docker/for-win/issues/3171#issuecomment-739740248

⚠️ **GitHub.com Fallback** ⚠️