大まかな流れ
- docker composeインストール
- docker-composeの設定とpiholeインストール
- pi-holeサービスへのアクセス
手順
docker composeインストール
# Docker Composeをインストール
sudo apt update
sudo apt install -y docker-compose
# バージョンを確認して正常にインストールされたことを確認
docker-compose --version
# ユーザーをdockerグループに追加(権限エラーを避けるため)
sudo usermod -aG docker $USER
# 変更を適用するためにログアウトして再ログインするか、以下のコマンドを実行
newgrp docker
docker-composeの設定とpiholeインストール
- プロジェクトディレクトリを作成
mkdir ~/opt/pi-hole
cd ~/opt/pi-hole
- Docker Composeファイルを作成
vim docker-compose.yml
- 以下の内容をコピーして貼り付け
services:
pihole:
container_name: pihole
image: pihole/pihole:latest
ports:
# DNS Ports
- "53:53/tcp"
- "53:53/udp"
# Default HTTP Port
- "80:80/tcp"
# Default HTTPs Port. FTL will generate a self-signed certificate
- "443:443/tcp"
# Uncomment the line below if you are using Pi-hole as your DHCP server
#- "67:67/udp"
# Uncomment the line below if you are using Pi-hole as your NTP server
#- "123:123/udp"
environment:
# 適切なタイムゾーンに設定(https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)
TZ: 'Asia/Tokyo'
# Web管理画面のパスワードを設定。設定しない場合はランダムパスワードが生成されます
FTLCONF_webserver_api_password: 'あなたのパスワード'
# Dockerのデフォルトbridge設定を使用する場合、DNS待ち受けモードを'all'に設定
FTLCONF_dns_listeningMode: 'all'
# データの永続化のためのボリューム
volumes:
# Pi-holeのデータベースと設定ファイルの永続化
- './etc-pihole:/etc/pihole'
cap_add:
# https://github.com/pi-hole/docker-pi-hole#note-on-capabilities 参照
# Pi-holeをDHCPサーバーとして使用する場合に必要
- NET_ADMIN
# Pi-holeをNTPクライアントとして使用する場合に必要
- SYS_TIME
# オプション、Pi-holeにより多くの処理時間を割り当てる
- SYS_NICE
restart: unless-stopped
- Dockerコンテナを起動
docker-compose up -d
サービスを利用してみる
- http://HOSTIP_ADDRESS/admin にアクセス・ログインする
- 端末で使うDNSをHOSTIP_ADDRESSに指定すれば完了
- 体感30%くらいの速度アップを感じる。体感です笑
実現できなかったこと
- HTTPS対応させる -> dsliteだとこのためにグローバルIP取得・固定ができない。独自証明書ならいけるが毎回警告出るのでは?
- 直近の大型アップデートから、以前のようなめんどくさそうな修正が入らなくなったらしい、と思ったがdsliteだとゴニョゴニョでできなかった
- ブロックリストの編集、必要性が出てきたらやってみよう。
参考文献
Enabling HTTPS for your Pi-hole Web Interface – FAQs / Community How-to’s – Pi-hole Userspace
“pi-holeをインストールしてLAN内で快適なAdBlockを実現する” への1件のコメント
[…] pi-holeをインストールしてLAN内で快適なAdBlockを実現する – Loochs などでDocker composeでサービスを走らせることが増えた […]