Things discovered while installing pi-hole service as a docker container on a Raspberry Pi 8GB Pi4 (Raspbian Buster OS)
Using the docker compose file from the GitHub installation site it was obvious that this version of the OS was not compatible with the latest versions of Pihole - so the first task was to up grade the OS to Bullseye.
The pihole docker container install site is here.
https://github.com/pi-hole/docker-pi-hole
This website offers a great simple method. It’s not as seamless as Ubuntu - but also not rocket science either.
https://www.tomshardware.com/how-to/upgrade-raspberry-pi-os-to-bullseye-from-buster
The first problem was there was a service already sitting on port 53 - so this has to be disabled as Pihole uses this port for it's service. The eventual truth was there were actually two services fighting over this port - systemd-resolver and connman dnsproxy.
They both need separate solutions to stop them.
Systemd-resolver needs to have it’s config file altered as follows,
Change DNS=1.1.1.1 and DNSStubListener=no - then restart the service.
With connman you need to follow the instructions in this blog post to turn off it’s attempt to grab that port
https://wiki.archlinux.org/title/ConnMan#Avoiding_conflicts_with_local_DNS_server
Once this was completed - the docker container would still not start - it was giving a spurious error message about IPv6 issues.
On further reading around - it appeared that the version of docker requires to be version 20 or above, so I updated that in Bullseye as follows using:
sudo apt install docker.io/bullseye
After all this the docker container started correctly and the Raspberry Pi is now function as our DNS proxy for the whole house network to try and stop all the crap the web throws at you.