mirror of
https://github.com/pi-hole/docs.git
synced 2026-02-20 00:55:10 +08:00
70 lines
3.8 KiB
Markdown
70 lines
3.8 KiB
Markdown
The easiest way to get up and running with Pi-hole on Docker is to use our quick-start `docker-compose.yml` template.
|
|
|
|
Copy the below [Docker Compose](https://docs.docker.com/compose/) example and customize as needed
|
|
|
|
```yaml
|
|
# More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/
|
|
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 below if 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:
|
|
# Set the appropriate timezone for your location from
|
|
# https://en.wikipedia.org/wiki/List_of_tz_database_time_zones, e.g:
|
|
TZ: 'Europe/London'
|
|
# Set a password to access the web interface. Not setting one will result in a random password being assigned
|
|
FTLCONF_webserver_api_password: 'correct horse battery staple'
|
|
# If using Docker's default `bridge` network setting the dns listening mode should be set to 'ALL'
|
|
FTLCONF_dns_listeningMode: 'ALL'
|
|
# Volumes store your data between container upgrades
|
|
volumes:
|
|
# For persisting Pi-hole's databases and common configuration file
|
|
- './etc-pihole:/etc/pihole'
|
|
# Uncomment the below if you have custom dnsmasq config files that you want to persist. Not needed for most starting fresh with Pi-hole v6. If you're upgrading from v5 you and have used this directory before, you should keep it enabled for the first v6 container start to allow for a complete migration. It can be removed afterwards. Needs environment variable FTLCONF_misc_etc_dnsmasq_d: 'true'
|
|
#- './etc-dnsmasq.d:/etc/dnsmasq.d'
|
|
cap_add:
|
|
# See https://github.com/pi-hole/docker-pi-hole#note-on-capabilities
|
|
# Required if you are using Pi-hole as your DHCP server, else not needed
|
|
- NET_ADMIN
|
|
# Required if you are using Pi-hole as your NTP client to be able to set the host's system time
|
|
- SYS_TIME
|
|
# Optional, if Pi-hole should get some more processing time
|
|
- SYS_NICE
|
|
restart: unless-stopped
|
|
```
|
|
|
|
Run `docker compose up -d` to build and start Pi-hole (on older systems, the syntax here may be `docker-compose up -d`)
|
|
|
|
The equivalent command for `docker run` would be:
|
|
|
|
```bash
|
|
docker run --name pihole -p 53:53/tcp -p 53:53/udp -p 80:80/tcp -p 443:443/tcp -e TZ=Europe/London -e FTLCONF_webserver_api_password="correct horse battery staple" -e FTLCONF_dns_listeningMode=all -v ./etc-pihole:/etc/pihole -v ./etc-dnsmasq.d:/etc/dnsmasq.d --cap-add NET_ADMIN --restart unless-stopped pihole/pihole:latest
|
|
```
|
|
|
|
|
|
## Docker tags and versioning
|
|
|
|
The primary docker tags are explained in the following table. [Click here to see the full list of tags](https://hub.docker.com/r/pihole/pihole/tags). See [GitHub Release notes](https://github.com/pi-hole/docker-pi-hole/releases) to see the specific version of Pi-hole Core, Web, and FTL included in the release.
|
|
|
|
The Date-based (including incremented "Patch" versions) do not relate to any kind of semantic version number, rather a date is used to differentiate between the new version and the old version, nothing more.
|
|
|
|
Release notes will always contain full details of changes in the container, including changes to core Pi-hole components.
|
|
|
|
| tag | description |
|
|
| :--- | :--- |
|
|
| `latest` | Always the latest release |
|
|
| `2022.04.0` | Date-based release |
|
|
| `nightly` | Built and pushed whenever there are changes on the `development` branch and additionally produced by the scheduled nightly job. These are the most experimental development images and may change frequently |
|