The IP that's get rate-limited is Docker's internal gateway:
*** [ DIAGNOSING ]: Pi-hole diagnosis messages
count last timestamp type message blob1 blob2
----- ------------------- --------------- ----------------- -------------------- --------------------
1 2024-11-13 07:36:57 RATE_LIMIT 172.17.0.1 1000 60
In bridge network modes, Docker is isolating containers in a separate network.
In your case, that also means that Docker is NATting traffic that it's passing into the bridge network, making that gateway your Pi-hole's only client.
If you were running your Docker on Linux, you could consider switching to another network mode - but unfortunately, Docker Desktop for MacOS does not support host or macvlan network modes (and neither would Docker Desktop for Windows).
You could consider to lift Pi-hole's rate limit by passing FTLCONF_RATE_LIMIT
into your Pi-hole container. If n
would be the number of clients, I'd probably set it to (n รท 2 *1000), so e.g. FTLCONF_RATE_LIMIT=4000/60
for 8 clients.
However, as Docker would still NAT requests, you still won't be able to attribute DNS requests to individual clients in your Docker MacOS configuration, and thus cannot take advantage of Pi-hole's client specific filtering.
If you need that, you should consider to stick with your RPi.