Port 53 communications error for Docker container on Synology

I've spent hours trying to troubleshoot this problem.

I've tried a whole new Docker project on my Synology. I can get the container to run and access the Web UI, but the UI is displaying DNS server failure and the Container Manager is telling me there is a communication error on 127.0.0.1:53. It seems like the container isn't able to talk on that port but I don't know why or how to fix it.

I've allowed Port 53 for both TCP and UDP on the Synology. Pihole was working until the latest v6 came out so now I'm trying to get it running again.

Here is my yaml config:

version: "3"

services:
  # Container #1: Pi-Hole - This container is the ad blocker.
  # -------------------------
  pihole:
    image: pihole/pihole:latest
    container_name: pihole
    # The container now needs more capabilities to run properly
    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
    ports:
      # NAS | Container
      - 53:53/tcp           # DNS Service on TCP - Pi-Hole's main function
      - 53:53/udp           # DNS Service on UDP - Pi-Hole's main function
      #- 67:67               # DHCP - Only if you plan to use Pi-Hole as a DHCP server in your network
      - 123:123             # NTP - Network Time Protocol - Making Pi-Hole a time server in your network
      ############# Here you pick how you want to see the Web Interface #############
      #- "80:80"             # HTTP UI - Check if your container is using 80 or 8080 and uncomment the right one if you are going to use plain HTTP
      - "8080:8080"           # HTTP UI
      #- "443:443"            # HTTPS UI - Check if your container is using 443 or 8443 and uncomment the right one if you are going to use HTTPS
      - "8443:8443"           # HTTPS UI
    environment:
      TZ: 'America/New_York' # Time Zone
      FTLCONF_webserver_api_password: '********' # Web Interface password
      FTLCONF_dns_listeningMode: 'all' # Make sure to listen to all DNS requests
      FTLCONF_dns_upstreams: '1.1.1.1,1.0.0.1'
      DNSMASQ_USER: 'root'
      PUID: '****'           # User ID
      PGID: '100'            # Group ID
    volumes:
      # NAS folder | Container folder
        - '/volume1/docker/pihole/pihole:/etc/pihole'
        - '/volume1/docker/pihole/dnsmasq.d:/etc/dnsmasq.d'
    restart: unless-stopped

Apparently there is another DNS server using port 53.

What is the output of sudo ss -tupln '( sport = 53 )'?

Note:

Unrelated to your issue, there is an error in your compose file.

The HTTP and HTTPS ports should be:

      - "8080:80"           # HTTP UI
      - "8443:443"           # HTTPS UI

I figured out the problem. The

FTLCONF_dns_upstreams: '1.1.1.1,1.0.0.1'

is incorrect. the IP addresses need to be separated by a semicolon.

FTLCONF_dns_upstreams: '1.1.1.1;1.0.0.1'

Oh... I missed that one.

Glad you found it. Don't forget to fix the ports.