DockerPiholeWireguard
This is a complete stack for running PiHole for AdBlock and WireGuard as VPN, with Docker.
Install / Use
/learn @Inushin/DockerPiholeWireguardREADME
🐳 Docker + PiHole + WireGuard 🐳

If you find this useful, remember about giving a start ⭐ to this repo or share it 🔁
Description 📋

This is a complete stack for running PiHole for AdBlock and WireGuard as VPN, with Docker.
It is composed by 2 containers:
pihole, blocking ads.wireguard, personal and free VPN for our server.
Installation ⌨

-
You need Docker and Docker Compose where you are going to launch this so, if you do not have it... click HERE or go to the end of this
.md^^ -
Clone this rep.
-
Edit
wireguard.envandpihole.envwith the information you want. -
Run
docker compose up😀. -
For having our PiHole database updated, run the script
updatePiholewith crontab (set the crontab with the root user). This script will remove and deploy again our PiHole container pulling a new and updated image. -
Check that the 2 containers are deployed:
pihole "/s6-init" pihole running (healthy) 53/tcp, 53/udp, 67/tcp, 80/tcp, 443/tcp, 67/udp
wireguard "/init" wireguard running 0.0.0.0:51820->51820/udp, :::51820->51820/udp
Docker's useful commands 📑

-
Run Docker Compose:
docker compose up -d/docker compose up -
Check Docker Compose's volumens status:
docker compose ps -a/docker compose ps -
Check Docker's images:
docker images -a -
Remove Docker's images:
docker rmi -f imageID1 imageID2 ...(-f = force) -
Enter to a Docker's volumen:
docker compose exec VolumenID sh/docker compose exec VolumenID bash -
Copy a file to the docker we want to:
docker cp file docker_id:/dir -
Remove all dangling (not tagged or associated with a container) containers, volumes, networks and images:
docker system prune -
Remove all unused containers and images with at least one container associated to them:
docker system prune -a -
Shows all unused local images:
docker images ls -f dangling=true -
Shows all unused local volumes:
docker volume ls -f dangling=true -
Remove all local volumes not used by at least one container:
docker volume prune
Installing Docker and Docker Compose 🛠

Adjust the installation to your OS. Here you have the one for a VPS with Debian 11
- Docker and Docker Compose installation
- Update the
aptpackage index and install packages to allowaptto use a repository over HTTPS:
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
- Add Docker’s official GPG key:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- Use the following command to set up the repository:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- Starts Docker's service each time you run the SO:
chkconfig docker on
sudo apt-get update
- Install Docker Engine, containerd, and Docker Compose. This will install the latest version:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
- Give permissions to the desired user by adding it the
dockergroup:
usermod -aG docker $USER
- Check the version and the installation:
docker compose versiondocker --version
⭐ Feedback and bugs 🐞
If you find any bug or just want to give your feedback (remember the ⭐ ^^), Feel free to do it. I am, like you, constantly learning and things change so quickly that... no one knows ^^
Version control 📝
- v1.0 - Current - Creation of the rep with the config finished - 05/12/2022
Related Skills
node-connect
350.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
prose
350.1kOpenProse VM skill pack. Activate on any `prose` command, .prose files, or OpenProse mentions; orchestrates multi-agent workflows.
frontend-design
109.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
350.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
Security Score
Audited on Jan 12, 2026
