Hi. I just installed node-red with the following docker compose configuration:
version: '3'
services:
mosquitto:
image: eclipse-mosquitto
container_name: mosquitto
restart: unless-stopped
volumes:
- ./mosquitto:/mosquitto/
ports:
- 1885:1883
- 9005:9001
nodered:
image: nodered/node-red
container_name: nodered
restart: unless-stopped
volumes:
- ./nodered:/data
ports:
- 1880:1880
user: root:root
Afterwards I can't install any node from the pallet. With network_mode: host configured it works. But do I really have to use this? I can't change the ports with it.
How do I have to adjust the configuration to use an own network?
This is the message:
-----------------------------------------------------------
2023-12-17T20:34:45.883Z Installieren : node-red-contrib-cron-plus 2.1.0
2023-12-17T20:34:46.039Z npm install --no-audit --no-update-notifier --no-fund --save --save-prefix=~ --production --engine-strict node-red-contrib-cron-plus@2.1.0
2023-12-17T20:34:47.643Z [err] npm
2023-12-17T20:34:47.645Z [err] WARN
2023-12-17T20:34:47.645Z [err] config production Use `--omit=dev` instead.
2023-12-17T20:36:14.161Z [err] npm
2023-12-17T20:36:14.161Z [err] ERR!
2023-12-17T20:36:14.162Z [err] code EAI_AGAIN
2023-12-17T20:36:14.163Z [err] npm ERR!
2023-12-17T20:36:14.163Z [err] syscall getaddrinfo
2023-12-17T20:36:14.164Z [err] npm ERR!
2023-12-17T20:36:14.165Z [err] errno EAI_AGAIN
2023-12-17T20:36:14.175Z [err] npm ERR!
2023-12-17T20:36:14.176Z [err] request to https://registry.npmjs.org/node-red-contrib-cron-plus failed, reason: getaddrinfo EAI_AGAIN registry.npmjs.org
2023-12-17T20:36:14.183Z [err]
2023-12-17T20:36:14.184Z [err] npm
2023-12-17T20:36:14.185Z [err] ERR!
2023-12-17T20:36:14.186Z [err] A complete log of this run can be found in:
2023-12-17T20:36:14.186Z [err] npm ERR! /data/.npm/_logs/2023-12-17T20_34_47_510Z-debug-0.log
2023-12-17T20:36:14.200Z rc=1
And the log file:
1 info using npm@8.19.4
2 info using node@v16.20.2
3 timing npm:load:whichnode Completed in 1ms
4 timing config:load:defaults Completed in 8ms
5 timing config:load:file:/usr/local/lib/node_modules/npm/npmrc Completed in 3ms
6 timing config:load:builtin Completed in 4ms
7 warn config production Use `--omit=dev` instead.
8 timing config:load:cli Completed in 12ms
9 timing config:load:env Completed in 1ms
10 timing config:load:file:/data/.npmrc Completed in 1ms
11 timing config:load:project Completed in 21ms
12 timing config:load:file:/root/.npmrc Completed in 10ms
13 timing config:load:user Completed in 10ms
14 timing config:load:file:/usr/local/etc/npmrc Completed in 5ms
15 timing config:load:global Completed in 5ms
16 timing config:load:validate Completed in 1ms
17 timing config:load:credentials Completed in 5ms
18 timing config:load:setEnvs Completed in 5ms
19 timing config:load Completed in 79ms
20 timing npm:load:configload Completed in 80ms
21 timing npm:load:mkdirpcache Completed in 4ms
22 timing npm:load:mkdirplogs Completed in 1ms
23 verbose title npm install node-red-contrib-cron-plus@2.1.0
24 verbose argv "install" "--no-audit" "--no-update-notifier" "--no-fund" "--save" "--save-prefix" "~" "--production" "--engine-strict" "node-red-contrib-cron-plus@2.1.0"
25 timing npm:load:setTitle Completed in 9ms
26 timing config:load:flatten Completed in 15ms
27 timing npm:load:display Completed in 25ms
28 verbose logfile logs-max:10 dir:/data/.npm/_logs
29 verbose logfile /data/.npm/_logs/2023-12-17T20_34_47_510Z-debug-0.log
30 timing npm:load:logFile Completed in 27ms
31 timing npm:load:timers Completed in 0ms
32 timing npm:load:configScope Completed in 1ms
33 timing npm:load Completed in 152ms
34 timing arborist:ctor Completed in 3ms
35 silly logfile start cleaning logs, removing 3 files
36 silly logfile done cleaning log files
37 timing idealTree:init Completed in 677ms
38 timing idealTree:userRequests Completed in 7ms
39 silly idealTree buildDeps
40 silly fetch manifest node-red-contrib-cron-plus@2.1.0
41 timing arborist:ctor Completed in 1ms
42 silly placeDep ROOT node-red-contrib-cron-plus@ OK for: node-red-project@0.0.1 want: 2.1.0
43 timing idealTree:#root Completed in 85335ms
44 timing idealTree:node_modules/node-red-contrib-cron-plus Completed in 0ms
45 timing idealTree:buildDeps Completed in 85342ms
46 timing idealTree:fixDepFlags Completed in 14ms
47 timing idealTree Completed in 86046ms
48 timing command:install Completed in 86077ms
49 verbose type system
50 verbose stack FetchError: request to https://registry.npmjs.org/node-red-contrib-cron-plus failed, reason: getaddrinfo EAI_AGAIN registry.npmjs.org
50 verbose stack at ClientRequest.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/minipass-fetch/lib/index.js:130:14)
50 verbose stack at ClientRequest.emit (node:events:513:28)
50 verbose stack at TLSSocket.socketErrorListener (node:_http_client:494:9)
50 verbose stack at TLSSocket.emit (node:events:525:35)
50 verbose stack at emitErrorNT (node:internal/streams/destroy:157:8)
50 verbose stack at emitErrorCloseNT (node:internal/streams/destroy:122:3)
50 verbose stack at processTicksAndRejections (node:internal/process/task_queues:83:21)
51 verbose cwd /data
52 verbose Linux 4.9.312-arm64
53 verbose node v16.20.2
54 verbose npm v8.19.4
55 error code EAI_AGAIN
56 error syscall getaddrinfo
57 error errno EAI_AGAIN
58 error request to https://registry.npmjs.org/node-red-contrib-cron-plus failed, reason: getaddrinfo EAI_AGAIN registry.npmjs.org
59 verbose exit 1
60 timing npm Completed in 86666ms
61 verbose unfinished npm timer reify 1702845288083
62 verbose unfinished npm timer reify:loadTrees 1702845288101
63 verbose code 1
64 error A complete log of this run can be found in:
64 error /data/.npm/_logs/2023-12-17T20_34_47_510Z-debug-0.log
Thanks a lot.
Hi there,
start your stack with your docker-compose.yml (no "network_mode: host").
Then enter your running nodered with
docker exec -it nodered /bin/bash
From there
ping google.com
Any response? Afterwards just exit with ... "exit" 
This fails too:
4183a1d25c8c:/usr/src/node-red# ping google.com
ping: google.com: Try again
I am on an Odroid single board computer with dietpi-os and just updated docker. I disabled iptables in the docker config, as it seams to be not configured and I got errors on docker compose up that links can't be built.
Mh. Did you try to re-install docker? I never had the necessity to change anything after a new installation. I am not working with dietpi-os though 
I will try that. Maybe I will setup a new machine. I guessed, that it has sth. to do with the update on docker and docker compose, I made already. I rebooted the device several times also.
I reinstalled docker now:
dietpi@oc4-iob02:~/docker/smarthome$ sudo dietpi-software reinstall 162
[ OK ] DietPi-Software | Initialised database
[ OK ] DietPi-Software | Reading database
DietPi-Software
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Mode: Automated reinstall
[ OK ] DietPi-Software | Reinstalling Docker: Build, ship, and run distributed applications
[ OK ] DietPi-Software | DietPi-Userdata validation: /mnt/dietpi_userdata
DietPi-Software
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Step: Checking for conflicts and missing inputs
DietPi-Software
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Step: Checking for prerequisite software
[ OK ] DietPi-Software | mkdir -p /mnt/dietpi_userdata/Music /mnt/dietpi_userdata/Pictures /mnt/dietpi_userdata/Video /mnt/dietpi_userdata/downloads /var/www /opt /usr/local/bin
[ OK ] DietPi-Software | chown dietpi:dietpi /mnt/dietpi_userdata/Music /mnt/dietpi_userdata/Pictures /mnt/dietpi_userdata/Video /mnt/dietpi_userdata/downloads
[ OK ] DietPi-Software | chmod 0775 /mnt/dietpi_userdata/Music /mnt/dietpi_userdata/Pictures /mnt/dietpi_userdata/Video /mnt/dietpi_userdata/downloads
[ SUB1 ] DietPi-Services > stop
[ OK ] DietPi-Services | stop : cron
[ OK ] DietPi-Services | stop : docker
[ OK ] DietPi-Services | stop : mosquitto
[ OK ] DietPi-Services | stop : cups
[ OK ] DietPi-Services | stop : avahi-daemon
[ INFO ] DietPi-Software | APT update, please wait...
Hit:1 https://deb.debian.org/debian buster InRelease
Hit:2 https://deb.debian.org/debian buster-updates InRelease
Hit:3 https://deb.debian.org/debian-security buster/updates InRelease
Hit:4 https://download.docker.com/linux/debian buster InRelease
Get:5 https://deb.debian.org/debian buster-backports InRelease [51.4 kB]
Hit:6 https://dietpi.com/meveric all InRelease
Hit:7 https://dietpi.com/meveric buster InRelease
Fetched 51.4 kB in 2s (22.6 kB/s)
Reading package lists...
[ OK ] DietPi-Software | APT update
DietPi-Software
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Step: Installing Docker: Build, ship, and run distributed applications
[ OK ] DietPi-Software | Checking URL: https://download.docker.com/linux/debian/gpg
[ OK ] DietPi-Software | eval curl -sSfL 'https://download.docker.com/linux/debian/gpg' | gpg --dearmor -o /etc/apt/trusted.gpg.d/dietpi-docker.gpg --yes
[ OK ] DietPi-Software | eval echo 'deb https://download.docker.com/linux/debian/ buster stable' > /etc/apt/sources.list.d/docker.list
[ INFO ] DietPi-Software | APT update, please wait...
Hit:1 https://download.docker.com/linux/debian buster InRelease
Hit:2 https://deb.debian.org/debian buster InRelease
Hit:3 https://deb.debian.org/debian buster-updates InRelease
Hit:4 https://deb.debian.org/debian-security buster/updates InRelease
Hit:5 https://deb.debian.org/debian buster-backports InRelease
Hit:6 https://dietpi.com/meveric all InRelease
Hit:7 https://dietpi.com/meveric buster InRelease
Reading package lists...
[ OK ] DietPi-Software | APT update
[ OK ] DietPi-Software | systemctl mask --now docker
[ INFO ] DietPi-Software | APT install docker-ce, please wait...
Reading package lists...
Building dependency tree...
Reading state information...
docker-ce is already the newest version (5:24.0.7-1~debian.10~buster).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
[ OK ] DietPi-Software | APT install docker-ce
[ OK ] DietPi-Software | systemctl unmask docker
[ OK ] DietPi-Software | systemctl start docker.socket
[ OK ] DietPi-Software | mkdir -p /lib/systemd/system/docker.service.d
[ OK ] DietPi-Software | eval echo -e '[Service]\nType=simple' > /lib/systemd/system/docker.service.d/dietpi-simple.conf
[ OK ] DietPi-Software | mkdir -p /mnt/dietpi_userdata/docker-data
[ OK ] DietPi-Software | Current setting in /etc/docker/daemon.json will be preserved: "data-root": "/mnt/dietpi_userdata/docker-data",
[ OK ] DietPi-Software | Current setting in /etc/docker/daemon.json will be preserved: "log-driver": "journald",
[ OK ] DietPi-Software | Current setting in /etc/docker/daemon.json will be preserved: "log-level": "warn",
[ OK ] DietPi-Software | Current setting in /etc/docker/daemon.json will be preserved: "debug": false,
[ OK ] DietPi-Software | Desired setting in /etc/containerd/config.toml was already set: [debug]
[ OK ] DietPi-Software | Current setting in /etc/containerd/config.toml will be preserved: level = "warn"
[ OK ] DietPi-Software | update-alternatives --set iptables /usr/sbin/iptables-nft
[ OK ] DietPi-Software | update-alternatives --set ip6tables /usr/sbin/ip6tables-nft
DietPi-Software
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Step: Finalising install
[ INFO ] DietPi-Software | Enabling installed services
[ OK ] DietPi-Software | systemctl --no-reload enable docker
[ OK ] DietPi-Software | systemctl daemon-reload
2023-12-17 22:49:30 [ INFO ] DietPi-RAMlog | Storing /var/log to /var/tmp/dietpi/logs/dietpi-ramlog_store...
2023-12-17 22:49:30 [ OK ] DietPi-RAMlog | Stored /var/log to /var/tmp/dietpi/logs/dietpi-ramlog_store.
DietPi-Software
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Step: Install completed
[ OK ] DietPi-Survey | Sending survey data
[ SUB1 ] DietPi-Services > restart
[ OK ] DietPi-Services | restart : avahi-daemon
[ OK ] DietPi-Services | restart : cups
[ OK ] DietPi-Services | restart : mosquitto
[ OK ] DietPi-Services | restart : docker
[ OK ] DietPi-Services | restart : cron
I removed everything I added from /etc/docker/daemon.json.
I rebooted the device.
Trying to run docker compose up with the configuration above leads to the following error:
dietpi@oc4-iob02:~/docker/smarthome$ docker compose up
[+] Running 1/1
โ Network smarthome_default Error 0.5s
failed to create network smarthome_default: Error response from daemon: Failed to program FILTER chain: iptables failed: iptables --wait -I FORWARD -o br-6c2d1fd57731 -j DOCKER: iptables v1.8.2 (nf_tables): RULE_INSERT failed (Invalid argument): rule in chain FORWARD
(exit status 4)
Does the docker user have correct permissions to mess with iptables ?
I have never used iptables at all. Neither with docker. Does it have a special user? I don't think, that I completely understand, what iptable is doing generally. Was there a change on docker and how it works?
But I think it isn't setup at all. There is no /etc/iptables folder.
Well docker is trying and failing to set it soโฆ.
There used to be a command you had to run to let a normal user run docker commands. But I thought most installers sorted that out for you these days.
Yes. The user is in the group of docker:
docker:x:998:dietpi
Maybe you need to install iptables ?
( now guessing as I donโt run diet-pi. Let alone with docker on top)
I found an old issue on dietpi: Compose / Docker encounters error before installation completes - Rock 5B DietPi ยท Issue #6013 ยท MichaIng/DietPi ยท GitHub
Switching iptables back to legacy...
update-alternatives --set iptables /usr/sbin/iptables-legacy
update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
... lets me start the docker compose group. But I can't install anything furthermore in nodered. The error there remains the same.
iptables is installed already:
iptables/oldoldstable,now 1.8.2-4 arm64 [installiert]
administration tools for packet filtering and NAT
It might be related to user rights:
- Which user are you running with? If not root, then:
id
output f.e. "uid=1000(pi) gid=1000(pi) Gruppen=1000(pi),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),100(users),106(netdev),996(docker)"
- add your user to docker group
sudo usermod -aG docker 'YOURUSERNAME'
f.e. sudo usermod -aG docker pi. Log out and log back in.
- change this in your docker-compose.yml
user: YOURUSER-ID:YOURGROUP-ID
f.e. user: 1000:1000
On which level do you mean? The host system? There I use the dietpi user. Docker in deamon mode has also root access, or not?
Despite that, the error is pointing on a syntax error: RULE_INSERT failed (Invalid argument): rule in chain FORWARD not permission error. I think with the updates something ist busted with iptables / nf_tables. I am an IT coordinator, but network topics are not on my strenghts. 
I ordered a new Odroid N2+ bord, so I can start from scratch. I can't blow up the actual board, because my home automation is partly running on it.
Thank you all for your support. I will give an update, as soo as the parts have arrived.
Besides that the N2+ device from Odroid is a really nice piece of hardware and much faster than my old board, the installation from scratch on DietPi worked like a charm. No more issues.
Thanks again for your support. Everybody running into this issue I only can recommend to rebuilt the system.