How to Install AdGuard Home with Docker Step by Step

Nowadays, online privacy and network security are topics that cause anxiety for almost everyone, even for companies. Various ads, trackers, and harmful domains, together with unsafe websites, are constantly in conflict with users’ privacy and their smooth browsing. That is the point of features of AdGuard Home really come into play. 

AdGuard Home is basically a DNS server network-wide that is capable of blocking ads, trackers, phishing, and harmful websites that are available on all devices connected to your network. Pairing up with Docker deployment management and maintenance of AdGuard becomes very simple.

Here, we are providing you with a guide that we made up of instructions on how you can install AdGuard Home using Docker, configure it correctly, and also secure your DNS filtering environment on a Linux server. 

IMAGE SOURCE: Pexels.com

What Is AdGuard Home?

AdGuard Home is a powerful and capable combination of an internet ad blocker and DNS filter that works throughout the network. Its filtering of DNS requests takes place long before they finally get to the websites or applications.

This makes it possible: 

  • Blocking of advertisements
  • Allowing only those trackers that are not a threat 
  • Deactivating malicious domains
  • Boosting the overall speed of browsing 
  • Providing more robust privacy safeguards
  • Giving protection to all the connected devices 

Being different from extensions for browsers, AdGuard Home can operate over the entire network.

Why Install AdGuard Home with Docker?

Working with Docker makes the deployment of software easier by enclosing the applications in lightweight containers.

The use of Docker in the case of AdGuard Home results in plenty of benefits:

  • Simple installation
  • Good portability
  • Easy updating
  • Server management without clutter
  • Better isolation
  • Quick deployment

Also, Docker ensures that AdGuard Home maintains its functionality across practically all Linux environments.

Prerequisites

Check these first to avoid any problems:

  • You should have Ubuntu, Debian, AlmaLinux, or any other Linux distribution
  • You should have installed Docker
  • You should have installed Docker Compose
  • You should be able to use Root or sudo
  • Ports for DNS and web access should be open

The least server specifications we recommend are:

  • 1 CPU core
  • 1 GB RAM
  • 10 GB storage

Step 1: Update Your Linux Server

First, update the server packages.

For Ubuntu or Debian systems:

sudo apt update && sudo apt upgrade -y

For AlmaLinux or CentOS:

sudo dnf update -y

Keeping the server updated improves security and compatibility.

Step 2: Install Docker

If Docker is not already installed, install it using the following commands.

For Ubuntu or Debian:

sudo apt install docker.io -y

Enable and start Docker:

sudo systemctl enable docker

sudo systemctl start docker

Verify Docker installation:

docker –version

Example output:

Docker version 26.0.0

Step 3: Install Docker Compose

Docker Compose helps manage multi-container applications more efficiently.

Install Docker Compose:

sudo apt install docker-compose -y

Verify installation:

docker-compose –version

Example output:

docker-compose version 1.29.2

Step 4: Create AdGuard Home Directories

Create persistent directories for configuration and data storage.

mkdir -p ~/adguardhome/work

mkdir -p ~/adguardhome/conf

These directories ensure your AdGuard Home settings remain محفوظ even after container restarts.

Step 5: Create the Docker Compose File

Navigate to the AdGuard Home directory:

cd ~/adguardhome

Create a Docker Compose file:

nano docker-compose.yml

Add the following configuration:

version: ‘3’

services:

 adguardhome:

   image: adguard/adguardhome

   container_name: adguardhome

   restart: unless-stopped

   ports:

     – “53:53/tcp”

     – “53:53/udp”

     – “67:67/udp”

     – “68:68/tcp”

     – “68:68/udp”

     – “80:80/tcp”

     – “443:443/tcp”

     – “3000:3000/tcp”

   volumes:

     – ./work:/opt/adguardhome/work

     – ./conf:/opt/adguardhome/conf

Save and exit the file.

Understanding the Docker Compose Configuration

This configuration does several important things:

Image

image: adguard/adguardhome

This downloads the official AdGuard Home Docker image.

Ports

The ports expose DNS and web management interfaces.

Important ports include:

  • 53 → DNS filtering
  • 80 → HTTP dashboard
  • 443 → HTTPS dashboard
  • 3000 → Initial setup wizard

Step 6: Start AdGuard Home Container

Run the container using Docker Compose:

docker-compose up -d

Docker will automatically download the AdGuard Home image and start the container.

Check running containers:

docker ps

You should see the AdGuard Home container running successfully.

Step 7: Access the AdGuard Home Setup Wizard

Open your browser and visit:

http://SERVER-IP:3000

Replace SERVER-IP with your actual server IP address.

The AdGuard Home setup wizard will appear.

Step 8: Configure AdGuard Home

The setup wizard will guide you through the initial configuration.

Configure Web Interface

Select the default web interface settings or customize them according to your preferences.

Configure DNS Server

By default, AdGuard Home listens on port 53 for DNS filtering.

Ensure no other DNS service is already using port 53.

Create Admin Credentials

Set:

  • Username
  • Strong password

to secure the AdGuard Home dashboard.

Step 9: Change DNS Settings on Your Devices

After setup, configure your devices to use the AdGuard Home server as their DNS provider.

Example DNS server:

192.168.1.10

You can configure DNS on:

  • Routers
  • PCs
  • Smartphones
  • Smart TVs
  • Gaming consoles

For full-network protection, configuring the router DNS is recommended.

Step 10: Verify DNS Filtering

Once DNS settings are updated, test AdGuard Home.

Visit websites with ads or trackers and check the dashboard activity.

The dashboard displays:

  • Blocked requests
  • DNS queries
  • Client devices
  • Filtering statistics
  • Top blocked domains

This confirms that DNS filtering is working properly.

Updating AdGuard Home Container

Keeping containers updated is important for security and performance.

Stop the container:

docker-compose down

Pull the latest image:

docker-compose pull

Restart the container:

docker-compose up -d

This updates AdGuard Home while preserving your existing settings.

The Role of Hosting Control Panel in Docker Management

It’s easier to handle Docker Containers if you have a web hosting control panel. It simplifies Linux server administration with features like:

  • Docker support
  • Firewall management
  • SSL management
  • Resource monitoring
  • Backup management
  • Performance optimization

Conclusion

Implement this step-by-step procedure, and you will soon have a robust DNS filtering system up and running in your home, office, or hosting environment.

Docker container, auto updates, and central DNS protection are a perfect triad for efficient, scalable modern network security and privacy management.