I have been summoned…
As marcoi pointed out your compose.yaml isn’t doing the business.
Most likely because QNAP is doing QNAP things and it isn’t compatible with generic upstream release.
You should try to find the upstream compose and then figure out what you need to adjust to work with QNAP’s docker.
SOOOO, something I’ve wondered about when it comes to applications/services like pihole is: The F*** are you supposed to do about NAT.
Like DNS resolution especially. Don’t we like want a LAN IP? And to not have anything else in the way?
So thank you @NA9D for making me install the template because now I learned some things about QNAP.
OKAY SO QNAP DEFAULTS
version: "3"
services:
pihole:
image: pihole/pihole:2022.12.1
networks:
qnet-network:
ipv4_address: ${QNET_STATIC_IP}
environment:
WEBPASSWORD: ${WEB_PASSWORD}
TZ: ${TZ}
volumes:
- etc-pihole:/etc/pihole
- etc-dnsmasq.d:/etc/dnsmasq.d
restart: unless-stopped
networks:
qnet-network:
driver_opts:
iface: ${QNET_INTERFACE}
driver: qnet
ipam:
driver: qnet
options:
iface: ${QNET_INTERFACE}
config:
- subnet: ${QNET_SUBNET}
gateway: ${QNET_GATEWAY}
volumes:
etc-pihole:
etc-dnsmasq.d:
As we can see it specifically calls for a release from 2022.
You and marcoi both went :latest, I have no idea what the recommended tag should be but I also use :latest plenty on my own.
Going to assume this is correct
Why are we using a named mount if we bothered to setup something in /share?
Not surprised config options changed since 2022
Obviously going to have fun later on since this is DNS we are talking about.
So I’m going to docs.pi-hole.net
# More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/
services:
pihole:
container_name: pihole
image: pihole/pihole:latest
ports:
# DNS Ports
- "53:53/tcp"
- "53:53/udp"
# Default HTTP Port
- "80:80/tcp"
# Default HTTPs Port. FTL will generate a self-signed certificate
- "443:443/tcp"
# Uncomment the below if using Pi-hole as your DHCP Server
#- "67:67/udp"
# Uncomment the line below if you are using Pi-hole as your NTP server
#- "123:123/udp"
environment:
# Set the appropriate timezone for your location from
# https://en.wikipedia.org/wiki/List_of_tz_database_time_zones, e.g:
TZ: 'America/Chicago'
# Set a password to access the web interface. Not setting one will result in a random password being assigned
FTLCONF_webserver_api_password: 'correct horse battery staple'
# If using Docker's default `bridge` network setting the dns listening mode should be set to 'all'
### FTLCONF_dns_listeningMode: 'all'
# Volumes store your data between container upgrades
volumes:
# For persisting Pi-hole's databases and common configuration file
- /share/Container/pihole/config:/etc/pihole
# Uncomment the below if you have custom dnsmasq config files that you want to persist. Not needed for most starting fresh with Pi-hole v6. If you're upgrading from v5 you and have used this directory before, you should keep it enabled for the first v6 container start to allow for a complete migration. It can be removed afterwards. Needs environment variable FTLCONF_misc_etc_dnsmasq_d: 'true'
#- /share/Container/pihole/etc-dnsmasq.d:/etc/dnsmasq.d
cap_add:
# See https://github.com/pi-hole/docker-pi-hole#note-on-capabilities
# Required if you are using Pi-hole as your DHCP server, else not needed
- NET_ADMIN
# Required if you are using Pi-hole as your NTP client to be able to set the host's system time
- SYS_TIME
# Optional, if Pi-hole should get some more processing time
- SYS_NICE
restart: always
Yup, that be different. Also looks like we can skip the second bind mount.
BUUUUUUUUUUT, I think we need to keep that qnet-network bullshit. So maybe something like…
# More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/
networks:
qnet-network:
driver_opts:
iface: eth0
driver: qnet
ipam:
driver: qnet
options:
iface: eth0
config:
- subnet: '10.0.0.0/24'
gateway: '10.0.0.1'
services:
pihole:
container_name: pihole
image: pihole/pihole:latest
networks:
qnet-network:
ipv4_address: '10.0.0.10'
hostname: pihole
ports:
# DNS Ports
- "53:53/tcp"
- "53:53/udp"
# Default HTTP Port
- "80:80/tcp"
# Default HTTPs Port. FTL will generate a self-signed certificate
- "443:443/tcp"
# Uncomment the below if using Pi-hole as your DHCP Server
#- "67:67/udp"
# Uncomment the line below if you are using Pi-hole as your NTP server
#- "123:123/udp"
environment:
# Set the appropriate timezone for your location from
# https://en.wikipedia.org/wiki/List_of_tz_database_time_zones, e.g:
TZ: 'America/Chicago'
# Set a password to access the web interface. Not setting one will result in a random password being assigned
FTLCONF_webserver_api_password: 'correct horse battery staple'
# If using Docker's default `bridge` network setting the dns listening mode should be set to 'all'
### FTLCONF_dns_listeningMode: 'all'
#### Because QNAP (I have a separate user for all docker things)
PIHOLE_UID: 1000
PIHOLE_GID: 1001
# Volumes store your data between container upgrades
volumes:
# For persisting Pi-hole's databases and common configuration file
- /share/Container/pihole/config:/etc/pihole
# Uncomment the below if you have custom dnsmasq config files that you want to persist. Not needed for most starting fresh with Pi-hole v6. If you're upgrading from v5 you and have used this directory before, you should keep it enabled for the first v6 container start to allow for a complete migration. It can be removed afterwards. Needs environment variable FTLCONF_misc_etc_dnsmasq_d: 'true'
#- /share/Container/pihole/etc-dnsmasq.d:/etc/dnsmasq.d
cap_add:
# See https://github.com/pi-hole/docker-pi-hole#note-on-capabilities
# Required if you are using Pi-hole as your DHCP server, else not needed
- NET_ADMIN
# Required if you are using Pi-hole as your NTP client to be able to set the host's system time
- SYS_TIME
# Optional, if Pi-hole should get some more processing time
- SYS_NICE
restart: always
It lives! Good luck with the rest @NA9D
@SteveKo What is so special about driver: qnet? It seems to be another macvlan only you guys ripped all the IPV6 out of it. That’s kinda shit 
I really need you guys to get on IPV6, I’m tired of fighting just to make something barely function.