Docker Setup - MaxTrautwein/TAR-Weiterentwicklung-IoT-Tor GitHub Wiki
Dieser Guide zeigt Ihnen wie Sie eine Docker Development Umgebung für Node Red einrichten können.
Bitte folgen Sie den offiziellen Anweisungen unter: https://docs.docker.com/desktop/windows/install/
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.
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.
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.
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