O Docker é um software que cria containers de softwares, ele é bem interessante pro pessoal que trabalha com softwares porém também pode ser útil pros curiosos.
Eu tava brincando com ele tem uns dias e percebi que dá para instalar muita bobagem nele, incluindo o pihole. (Não sei se alguém lembra, mas eu estava cogitando em comprar um Celeron J4105 para instalar linux e pihole para testar. hahaha)
No começo eu tive os mais variados problemas para fazer ele funcionar, mas agora está de boa. (as coisas andam quando a gente começa a RTFM)
Agora um minitutorial super rápido de como instalar o Pihole no Docker:
IMPORTANTE: REQUER Windows 10 x64 2004 ou superior.
-
Baixa e instala o Docker (Stable) (https://www.docker.com/)
-
Instala o WSL (Windows Subsystem for Linux):
No PowerShell como administrador: (Tem de ser o PowerShell, as Linhas de Comando [CMD] normais não servem)
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Reinicia o PC, reabre o PowerShell como administrador:
wsl --set-default-version 2
-
Atualiza o kernel dele: Manual installation steps for older versions of WSL | Microsoft Learn
-
Instala uma distro WSL: Loja da Microsoft .
Detalhe: A Loja da Microsoft fica aporrinhando para tu fazer o login, mas dá para pular isso cancelando algumas vezes e clicando em instalar.
Nota: Não sei se acontece com todo mundo, mas eu tive de ir na seção “prontos para instalar” da loja e clicar em instalar para instalar a distro. A loja apenas baixou a distro porém não instalou. -
Nas linhas de comando, digita o nome da distro. Eu usei o ubuntu. Configura a distro escolhida (usuário/senha). GUARDA ESSA SENHA, pode precisar depois acho.
-
Você deve precisar adicionar o docker.exe e a porta UDP 53 (no caso do Pihole, essa é a porta do DNS) na lista de permissão do seu firewall. Eu uso o Windows Defender FIrewall que faz um trabalhinho decente, então os próximos passos são para ele, mas devem ser parecidos para a maioria dos firewalls.
6.a. Aperta a tecla do windows e digita “Firewall e proteção de rede”. Depois clica em “Permitir um programa pelo firewall” => “Alterar configurações” (precisa ser admin) → “Permitir outro aplicativo” => “Procurar” e vai na pasta onde você instalou o docker e procura o docker.exe. Ai é só confirmar e habilitar.
6.b. Caso você vá instalar o pihole, após concluir o passo acima, aperte a tecla do windows novamente e digite “Windows Defender Firewall com Segurança Avançada” => “Executar como administrador”. Nessa nova tela, clique em “Regras de Entrada”, e no lado direito “Nova Regra”.
No “Assistente para Nova Regra de Entrada”, escolha “Porta”, Avançar, “UDP”, selecione “Portas locais especificas” e coloque 53 lá. Avançar, “Permitir a conexão”, Avançar, desmarca “Público” e “Dominio”, Avançar, coloca um nome que tu lembre o que é e Concluir. Ai é só fechar essa janela.
Com isso o básico do docker já deve estar funcionando.
Volte ao PowerShell.
Caso você não tenha nenhum HTTPd rodando no seu computador e nem nada usando a porta 80, você pode instalar usando as portas normais.
docker run -d --name pihole -e ServerIP=172.20.0.20 -e WEBPASSWORD=SENHADOLOGINNOPIHOLE -e DNS1=127.0.0.1 -e DNS2=1.1.1.1 -e DNS3=8.8.8.8 -p 80:80 -p 53:53/tcp -p 53:53/udp -p 443:443 --restart=unless-stopped pihole/pihole:latest
Agora é só acessar http://127.0.0.1/admin/ e ir olhando.
Nota: “SENHADOLOGINNOPIHOLE” é a senha que você quiser usar.
Importante: Não mexa no DNS1. Ele precisa ser 127.0.0.1, já o DNS2 pode ser qualquer DNS que você use. Além desses tem o Quad9 (9.9.9.9) que também é muito bom.
Caso a porta 80 não esteja disponível, você pode mudar a porta padrão modificando o -p 80:80 para -p 8080:80, por exemplo. Esse 8080 deve ser uma porta que não esteja ocupada.
docker run -d --name pihole -e ServerIP=172.20.0.20 -e WEBPASSWORD=GUIpassWORD -e DNS1=127.0.0.1 -e DNS2=1.1.1.1 -e DNS3=8.8.8.8 -p 8080:80 -p 53:53/tcp -p 53:53/udp -p 443:443 --restart=unless-stopped pihole/pihole:latest
Nesse caso, você precisará usar outro endereço para acessar a interface do pihole: http://127.0.0.1:8080/admin/ (8080 é a porta alternativa que eu escolhi, tu tem de usar a porta que tu escolheu)
– Para usar o Pihole nos dispositivos, é simples. Coloca o DNS primário como o IP do computador que está rodando ele e deixa o DNS secundário em branco.
Espero que esteja tudo correto, estou escrevendo de memória algo que fiz ontem. =p