From charlesreid1

Line 2: Line 2:


Running PiHole via Docker on Ubuntu 18.04
Running PiHole via Docker on Ubuntu 18.04
==Notes on Networking and Ports==
PiHole acts as a DNS server for Bespin, listening on port 53 by default. This complicates things for us:
* We already set up dnsmasq to run as a DNS and DHCP server for the wireless AP hotspot
* If we hadn't set up dnsmasq, Ubuntu already has a built-in DNS server (systemd-resolvd) running on port 53 (see [[Ubuntu/Bespin]] for instructions to disable)
How to resolve this? We are going to run the PiHole on a non-standard port (5353), and keep using dnsmasq on port 53. But we will change dnsmasq so that it uses the PiHole DNS server as an upstream (recursive) DNS server (i.e., if dnsmasq receives a request for an entity like "github.com" and does not find it in <code>/etc/hosts</code>, it will pass the request along to the upstream DNS server.
If we do this with dnsmasq and the PiHole in a chain, we can get all the benefits of the PiHole DNS sinkhole, while still using dnsmasq and not modifying our existing, working setup too much.


==Install Stuff==
==Install Stuff==

Revision as of 22:58, 7 July 2020

Running PiHole via Docker on Ubuntu 18.04

Notes on Networking and Ports

PiHole acts as a DNS server for Bespin, listening on port 53 by default. This complicates things for us:

  • We already set up dnsmasq to run as a DNS and DHCP server for the wireless AP hotspot
  • If we hadn't set up dnsmasq, Ubuntu already has a built-in DNS server (systemd-resolvd) running on port 53 (see Ubuntu/Bespin for instructions to disable)

How to resolve this? We are going to run the PiHole on a non-standard port (5353), and keep using dnsmasq on port 53. But we will change dnsmasq so that it uses the PiHole DNS server as an upstream (recursive) DNS server (i.e., if dnsmasq receives a request for an entity like "github.com" and does not find it in /etc/hosts, it will pass the request along to the upstream DNS server.

If we do this with dnsmasq and the PiHole in a chain, we can get all the benefits of the PiHole DNS sinkhole, while still using dnsmasq and not modifying our existing, working setup too much.

Install Stuff

Docker

Thanks to the Ansible step covered on the Ubuntu/Bespin page, Docker is already installed on Bespin.

$ which docker
/usr/bin/docker

$ which docker-compose
/usr/local/bin/docker-compose

PiHole Docker Image

Pull the latest pihole docker image:

docker pull pihole/pihole:latest

Create Docker Compose File