Peut-être êtes-vous importuné par des annonces publicitaires intempestives lorsque vous lisez un article sur un site web. Avec toutes ces annonces, comment les bloquer ? Installez Pi-hole dans Docker et utilisez Pi-hole comme un bloqueur de publicités à l’échelle du réseau pour améliorer les performances de votre réseau.
Dans ce tutoriel, vous apprendrez à configurer et à exécuter Pi-hole dans un conteneur Docker pour bloquer les publicités et les sites web. Cela vous semble excitant ? Continuez à lire pour en savoir plus !
Prérequis
Ce tutoriel sera une démonstration pratique. Si vous souhaitez suivre, assurez-vous d’avoir les éléments suivants :
- Docker installé sur Windows 10 (mais tout système d’exploitation pris en charge fonctionnera).
- A Windows 10 PC – This tutorial uses Windows 10 OS Build 19042.1165.
Création de deux volumes Docker persistants
Lors de la configuration de Pi-hole dans un conteneur Docker, vous devrez d’abord créer un volume Docker pour stocker l’application Pi-hole et la configuration DNS.
Ouvrez PowerShell en tant qu’administrateur, puis exécutez les commandes ci-dessous pour Docker afin de créer deux volumes (volume create
) nommés pihole_app
et dns_config
. Vous pouvez également changer les noms selon vos préférences.
Ensuite, vérifiez que les volumes Docker ont été créés avec succès en exécutant la commande suivante qui répertorie tous les volumes Docker disponibles sur votre machine.
Ci-dessous, vous voyez deux volumes nouvellement créés nommés pihole_app
et dns_config
.

Exécution de Pi-hole dans un conteneur Docker avec des variables d’environnement
Maintenant que vous avez deux volumes persistants disponibles, vous êtes prêt à exécuter un conteneur Docker en utilisant l’image Docker de base de Pi-hole. Mais d’abord, vous devez noter votre adresse IP locale.
Exécutez la commande ci-dessous pour obtenir votre adresse IP locale. Votre adresse IP locale est nécessaire pour exécuter correctement la commande Docker unique.
Ensuite, exécutez la commande ci-dessous pour tirer l’image de base pihole/pihole
depuis Docker hub. Remplacez les valeurs en utilisant le tableau ci-dessous comme référence. Le tableau ci-dessous explique chaque drapeau de la commande.
Drapeaux de Commande Docker de Pi-hole
Command Flags | Definition |
—name=pihole | Names a Docker container as pihole. There will be an error if a container with the same name already exists on your machine |
-e TZ=Asia/Manila | Environment variable for time zone. Asia/Manila was used for this tutorial, but you can input anything that has the same format listed in on a GitHub gist. |
-e WEBPASSWORD=password | Sets a password for the Pi-hole interface. |
-e SERVERIP=YourIPAddressHere | Set your IP address for the Docker container. You will use this again later for making Pi-hole work. |
-v pihole_app:/etc/pihole | Mounts the volume pihole_app and use subdirectory /etc/pihole for storing the Pi-hole files |
-v dns_config:/etc/dnsmasq.d | Mounts the volume dns_config and use subdirectory /etc/dnsmasq.d for storing DNS configurations as required. |
p 81:80 -p 53:53/tcp -p 53:53/udp | Maps the ports of host machine to the ports of the Docker container (port 81 in host machine maps to port 80 of Docker container) |
—restart=unless-stopped | Sets a restart policy so the Docker container always restarts unless it is manually stopped by the user. |
pihole/pihole | Tells the docker run command to use the official pihole/pihole base image from Docker hub. |
Ci-dessous, vous pouvez voir la commande qui extrait l’image de base pihole/pihole
depuis Docker Hub. Une fois que l’image pihole/pihole
est téléchargée sur votre machine, la commande continue automatiquement et suit les paramètres que vous avez définis dans la commande.

Après avoir extrait l’image de base pihole/pihole
, vous verrez une sortie comme celle ci-dessous, ce qui indique que vous pouvez déjà exécuter le tableau de bord Pi-hole à partir du conteneur.

Accéder à l’interface Web du tableau de bord Pi-hole
Une fois que le conteneur Docker que vous avez créé est en cours d’exécution, vous pouvez maintenant accéder au tableau de bord Pi-hole. Le tableau de bord Pi-hole est une interface graphique qui vous permet de configurer les publicités à bloquer soit via votre propre liste noire, soit via des listes noires maintenues par la communauté.
Naviguez sur http://localhost:81 dans votre navigateur, car vous avez précédemment associé le port 81
de la machine hôte au port 80
du conteneur Docker. Ce faisant, votre navigateur web redirige la page vers le tableau de bord Pi-hole.
Si vous avez défini un port différent lors de l’exécution de la précédente commande
docker
, modifiez le port pour accéder au tableau de bord Pi-hole. Par exemple, http://localhost:n où ‘n’ représente le numéro de port.
Maintenant, connectez-vous au tableau de bord Pi-hole avec le mot de passe que vous avez défini en exécutant la commande docker
dans la section « Exécution du conteneur Docker Pi-hole avec des variables d’environnement ». Pour ce tutoriel, le mot de passe est « password » (sans guillemets).

Comme vous pouvez le voir ci-dessous, le conteneur Pi-hole ne bloque pas activement les publicités et est en mode veille en attente de ce qu’il appelle des « requêtes » ou des demandes de publicités à évaluer.

Pointer le serveur DNS de l’hôte vers l’adresse IP de Pi-hole
Avec le serveur Pi-hole en cours d’exécution, comment bloquer les publicités sur votre système local ? Vous devez indiquer à votre système local de router toutes les demandes vers l’adresse IP de Pi-hole et de bloquer toutes les publicités correspondantes. Continuez à lire pour apprendre comment faire !
1. Cliquez avec le bouton droit de la souris sur l’icône des paramètres réseau dans la barre d’état système de Windows et choisissez Ouvrir les paramètres réseau et Internet pour voir la liste de tous les adaptateurs réseau de votre machine.

2. Ensuite, cliquez avec le bouton droit de la souris sur votre adaptateur réseau et choisissez Propriétés. La fenêtre des paramètres de votre adaptateur réseau s’ouvrira.

3. Sélectionnez Version 4 du protocole Internet (TCP/IPv4) dans la liste sous l’onglet Réseautage, puis cliquez sur le bouton Propriétés.

4. Configurez les propriétés IPv4 comme suit :
- Sélectionnez l’option Utiliser l’adresse IP suivante pour définir une adresse IP statique. L’attribution d’une adresse IP statique à la machine hôte permet à d’autres appareils de se connecter et d’utiliser le bloqueur de publicités. La passerelle par défaut du routeur diffère selon les paramètres de votre fournisseur d’accès à Internet (FAI) dans votre pays.
- Sélectionnez l’option Utiliser les adresses de serveur DNS suivantes pour configurer votre serveur DNS, et ajoutez un serveur DNS dans le champ Serveur DNS préféré. Entrez l’adresse IP du serveur Docker que vous avez définie à partir de la commande
docker
précédente sous la section “Exécution du conteneur Docker Pi-hole avec des variables d’environnement”. - Ajoutez un serveur alternatif comme le serveur Google 8.8.8.8 dans le champ Serveur DNS alternatif, et cliquez sur OK. Le serveur DNS alternatif sert de serveur DNS au cas où le conteneur Docker Pi-hole tomberait en panne pour une raison quelconque. Vous pouvez donner une autre valeur au serveur DNS alternatif que vous préférez.

Configuration du DNS d’un seul appareil
En supposant que vous avez un smartphone ou tout autre appareil connecté au même réseau, vous pouvez pointer le serveur DNS de cet appareil pour correspondre à l’adresse IP de l’hôte. Dans ce tutoriel, un smartphone est connecté au même réseau.
1. Dans les paramètres de réseau sans fil du smartphone, appuyez sur Manuel et entrez l’adresse IP de la machine hôte. Vous pouvez également ajouter des adresses IP alternatives au cas où Pi-hole échouerait.
L’interface des paramètres de réseau sans fil sur les smartphones diffère les uns des autres.

2. Maintenant, visitez certains sites web qui sont lourds en publicités dans le navigateur web de votre smartphone.
Pour cet exemple, les sites web du Daily Mail et du New York Times ont été visités à plusieurs reprises pendant 5 à 10 minutes. L’administrateur du navigateur en direct sur le tableau de bord Pi-hole affiche le nombre de publicités bloquées provenant de l’appareil, comme indiqué ci-dessous.
Les graphiques à barres sont une nouveauté de la dernière version de Pi-hole à l’heure de la rédaction de ce texte. Certaines versions plus anciennes utilisent des graphiques linéaires à la place.

Activation du blocage réseau à domicile via les paramètres du routeur
Au lieu de configurer un serveur DNS sur un seul appareil, essayez de configurer des serveurs DNS pour tous les appareils dans les paramètres de votre routeur. Selon votre routeur, il peut y avoir ou non une option permettant d’utiliser l’adresse IP.
Pour cette démonstration, le routeur n’autorisait pas l’accès à la modification des serveurs DNS et du DHCP. Par conséquent, la configuration du réseau domestique n’a pas été explorée en détail dans ce tutoriel en raison des contraintes du routeur.
Dans une vue d’administration d’exemple, vous pouvez être en mesure d’encoder l’adresse IP du serveur DNS de la même manière que cela a été fait sur un seul appareil. Cette démonstration utilise un routeur Prolink PRS1841U-v2 verrouillé par le FAI.
L’interface de configuration DNS diffère d’un routeur à l’autre, mais les paramètres ressemblent à ceux ci-dessous.

Vous pouvez également désactiver le serveur DHCP dans le routeur, puis activer le serveur DHCP dans Pi-hole à la place. Une discussion d’exemple dans la communauté Pi-hole montre cela plus en détail.
Blocage des sites Web via le tableau de bord Pi-hole
L’installation par défaut de Pi-hole bloque environ 92 725 sites Web par défaut, mais vous pouvez également ajouter plus de sites Web via les listes noires du fabricant de Pi-hole et d’autres listes partagées par les fans de Pi-hole.
1. Enregistrez les sites Web à bloquer dans un fichier texte avec le nom de votre choix. Pour cet exemple, le fichier est nommé blocklist.txt.
2. Exécutez la commande docker
ci-dessous pour copier le fichier blocklist.txt (cp blocklist.txt
) dans le volume du conteneur Docker dans un fichier nommé blacklist.txt. Gardez le fichier blacklist.txt sur le volume Docker afin que Pi-hole le détecte automatiquement.
3. Enfin, accédez à nouveau au tableau de bord d’administration de Pi-hole. Cliquez sur le menu Outils dans le panneau de gauche, puis sur le lien Mettre à jour Gravity. Enfin, cliquez sur Mettre à jour pour récupérer une liste mise à jour des URL à bloquer pour Pi-hole.

A successful update will look like the one below.

Mise à jour de la liste de blocage des sites Web via la console
Vous préférez peut-être exécuter des commandes console plutôt que de naviguer dans le tableau de bord de Pi-hole. Si c’est le cas, vous pouvez exécuter une commande Docker dans PowerShell pour bloquer des sites Web. Exécutez la commande docker exec
ci-dessous pour créer une session de terminal interactive dans le conteneur Docker pihole_app
, ce qui permet l’exécution de commandes.
Une fois la session terminal ouverte, exécutez la commande ci-dessous pour mettre à jour la liste noire des URL de Pi-hole.
Exécutez à nouveau
pihole -g
de temps en temps pour que votre bloqueur de publicités reste à jour.
Blocage des sites Web via des listes noires de URLs maintenues par la communauté
Certaines URLs sont dédiées à être régulièrement mises à jour par leurs contributeurs, et d’autres non, donc télécharger une liste noire à partir d’une ancienne liste peut ne pas refléter les derniers changements.
Tirez parti de la fonctionnalité de gestion de groupe de listes de blocage Adlist de Pi-hole. Sur le tableau de bord de Pi-hole, cliquez sur le menu Gestion des groupes → Listes d’annonces dans le panneau de gauche, puis cliquez sur Ajouter pour choisir la liste d’URL que vous souhaitez ajouter dans Pi-hole.

Conclusion
Dans ce tutoriel, vous avez appris comment télécharger une image Docker Pi-Hole, tester une interface web Pi-hole en écoute active, tester un appareil externe pour se connecter à Pi-hole. Vous avez également appris comment bloquer les publicités et les sites web, et vous avez pu voir le tableau de bord de Pi-hole en action lorsqu’il les bloque.
Avec cette connaissance, pourquoi ne pas utiliser n’importe quelle machine hôte pour bloquer les publicités sur les autres appareils connectés sur le même réseau ?