Create your own secure Home Network using Pi-hole and Docker

Pi-hole is a linux based web application, which is used as a shield from the unwanted advertisement in your network and also block the internet tracking system.This is very simple to use and best for home and small office networks. This is totally free and opensource. It also allows you to manage your accessibility and blocklist as well. It has a very descent graphical way of showing the network queries. Docker is a tool that works on containerization technology. This is used to launch containers for different requirements like a webserver, a dns and many more. To know more about docker you check it out here on GeeksForGeeks and for launching your own web server on docker you could see here.

Architecture

Architecture

How to setup pi-hole and Docker?

Step 1
Open your terminal and Start docker

sudo systemctl start docker

Enter the command to download pihole from docker hub

sudo docker pull pihole/pihole

Step 2: Skip this if you are not using ubuntu



sudo systemctl stop systemd-resolved.service
sudo systemctl disable systemd-resolved.service 

Step 3
Change the DNS to something else like google

sudo gedit /etc/resolv.conf

set dns 8.8.8.8 and save.
Step 4
Copy this code

version: "3"

services:
  pihole:
    container_name: pihole
    image: pihole/pihole:latest
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "67:67/udp"
      - "80:80/tcp"
      - "443:443/tcp"
    environment:
      TZ: 'Asia/Kolkata' #this is the time zone
    volumes:
       - './etc-pihole/:/etc/pihole/'
       - './etc-dnsmasq.d/:/etc/dnsmasq.d/'
    dns:
      - 127.0.0.1
      - 1.1.1.1
    cap_add:
      - NET_ADMIN
    restart: unless-stopped

Open a File

sudo gedit pihole.sh

copy paste the above code here and save the file.

Step4
Give permissions to the shell file

sudo chmod u+x pihole

Step5
Run the file to launch pihole

sudo ./pihole

Step6
Move inside pihole container

sudo docker exec -it pihole bash

Change pihole password

pihole -a -p
exit

Step7
Go to browser and search

http://localhost/admin/

OR
Use IP and copy paste the ip to browser

ifconfig

Ip in browser pihole


Step8
Login with the password
Login Pihole
That’s it all set.

Now use the pihole as your DNS instead of any other.

Go to dns setting in your windows…
settings –> Network and Internet –> Ethernet (if you are connected to ethernet) or WiFi ( if your laptop connected to wifi) –> change adapter options –>right click on wifi or ethernet and go to properties –> select ipv4 –> properties –> change the dns to the ip of pihole.
WIFI settings
WiFi Properties

Select IPv4
IPv4
Change the DNS from optain DNS automatically to Use following dns server and write the ip the box. In second you could write any dns like 8.8.8.8
DNS
Same Pi-hole IP can be used in the home router as DNS.

Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.