Ich habe über die Feiertage Zeit gehabt und eine Lösung gefunden:
Voraussetzungen:
QNAP 251+ mit 16GB Ram, QTS v4.4.1.1146, Docker v17.09.1, Adapter 1 mit DHCP an FritzBox, Adapter 2 mit fixer IP am Intranet
Zunächst alle Reste der vorherigen Versuche entfernen, also in der ContainerStation die Container stoppen, löschen und die Images entfernen. Zur Sicherheit noch in der Kommandozeile „docker system prune“ ausführen, das entfernt alle inaktiven Container und Netzwerke. Mit der FileStation die angelegten Verzeichnisse löschen. Jetzt müsste alles blank sein.
Ich benutze gerne die Kommandozeile, um Docker Kommandos auszuführen. Das ist für mich übersichtlicher beim Probieren/Dokumentieren. Trotzdem installiere ich auch immer den Portainer, weil man da bequem alles anschauen kann, ähnlich wie auch in der ContainerStation.
Ich wollte den ioBroker über beide Netzwerke erreichen bzw. aus beiden Informationen lesen. Da dies mit dem Aufruf „--network host“, im Gegensatz zum Portainer s.u., nicht klappt (ioBroker wird nicht richtig installiert, warum auch immer), habe ich einen anderen Weg gefunden.
Ich lege zunächst im Docker 2 Netzwerke an, dazu benutze ich den QNAP Treiber qnet, siehe: https://qnap-dev.github.io/container-station-api/qnet.html#
Netzwerke anlegen:
docker network create -d qnet --ipam-driver=qnet --ipam-opt=iface=eth0 dhcp-fritzbox
Erzeugt ein Netzwerk Typ qnet mit dem QNAP Treiber qnet und dem Namen dhcp-fritzbox (am QNAP Adapter1 = FritzBox). Dadurch wird in der QNAP automatisch auch ein virtueller Switch erzeugt.
docker network create -d qnet --ipam-driver=qnet --ipam-opt=iface=eth1 --subnet=192.168.1.0/24 --gateway=192.168.1.1 static-intranet
Erzeugt ein Netzwerk Typ qnet mit dem QNAP Treiber qnet und dem Namen static-intranet (am QNAP Adapter2 = Intranet)
Option -d steht hier nicht wie beim run Befehl für detach sondern für --driver, also hier der qnet Treiber (alternativ z.B. auch bridge, macvlan u.a.).
Option --ipam-driver weist den IP adress manager zu, hier auch vom qnet.
Option --ipam-opt weist spezielle Treiber Parameter zu, hier soll das Interface eth0 benutzt werden (entspricht dem QNAP Adapter1, der ja auf DHCP steht).
Option --subnet weist die Subnet-Maske zu 192.168.1.0/24 bedeutet IP Range von 192.168.1.1 bis 192.168.1.254, Maske 255.255.255.0
Option--gateway weist das Gateway zu
Am Ende steht der Name des Netzwerks
In der QNAP Systemsteuerung, Netzwerk- und virtueller Switch, Übersicht sieht das dann so aus (Namen der virtuellen Switche angepasst, WAN-IP entfernt):
[image: 1577969141676-2fb07b24-fb2d-49e0-a18f-7a1912acdc9e-image.png]
Im Portainer später dann so (Ownership ist mir noch unklar):
[image: 1577969177707-b5b8949c-8ceb-4dc6-b106-1b1467126cde-image.png]
Portainer installieren:
docker pull portainer/portainer (holt das Portainer Image vom DockerHub, ist aber nicht unbedingt nötig, der docker run würde es auch holen, wenn noch nicht lokal vorhanden)
docker run -d -p 9999:9000 --name portainer --network host -v /var/run/docker.sock:/var/run/docker.sock -v /share/Container/Docker/portainer_data:/data portainer/portainer
Obwohl der Port 9999 benutzt werden soll, ist der Portainer nur unter Port 9000 ereichbar (liegt ev. am network host ?),
kann aber wegen network host sowohl über http://192.168.178.151:9000 wie auch http://192.168.1.151:9000 aufgerufen werden.
ioBroker installieren:
docker pull buanet/iobroker
docker run -d --name ioBroker --network dhcp-fritzbox --restart always -e TZ="Europe/Berlin" -p 8081:8081 -p 8082:8082 -p 8083:8083 -p 8084:8084 -v /share/Container/Docker/ioBroker:/opt/iobroker -v /share/Container/Docker/ioBroker_transfer:/opt/transfer -v /share/Container/Backup/Docker/ioBroker:/opt/iobroker/backups buanet/iobroker
Container stoppen, das zweite Netzwerk anhängen mit einer IP, den ioBroker Container neu starten.
docker network connect --ip 192.168.1.152 static-intranet ioBroker
Man könnte wohl auch den Container erst mit create anlegen und später starten (docker start -d ioBroker)
docker create --name ioBroker --network dhcp-fritzbox --restart always -e TZ="Europe/Berlin" -p 8081:8081 -p 8082:8082 -p 8083:8083 -p 8084:8084 -v /share/Container/Docker/ioBroker:/opt/iobroker -v /share/Container/Docker/ioBroker_transfer:/opt/transfer -v /share/Container/Backup/Docker/ioBroker:/opt/iobroker/backups buanet/iobroker
In der QNAP Systemsteuerung, Netzwerk- und virtueller Switch, Übersicht sieht das dann so aus (Namen der virtuellen Switche angepasst, WAN-IP entfernt):
[image: 1577969371046-ab37b273-d247-4772-868a-950f62aae586-image.png]
ioBroker kann jetzt sowohl mit dem FritzBox Subnet als auch mit dem Intranet Subnet kommunizieren.
Das funktioniert soweit erst mal für mich und ich kann weiter probieren.
Vielleicht habt Ihr ja trotzdem noch weitere Tipps.
Und noch ein frohes, neues Jahr an alle!