====== Docker - Portainer - Create Container ======
===== Log into Portainer =====
Navigate to **127.0.0.1:9000**.
----
===== Select the Local Docker =====
Select your local docker:
{{:pi-hole:portainer_-_local.png?800|}}
----
===== Add Container =====
Navigate to **Containers**.
Click **Add Container**.
{{:pi-hole:portainer_-_containers.png?800|}}
----
===== Create Container =====
* Name: **PiHole**.
* image: **pihole/pihole:latest**.
* Publish all exposed network ports to random host ports: **Disabled**. Do not publish all exposed ports. Manually do it:
* **53:53/tcp**.
* **53:53/udp**.
* **67:67/udp**.
* **80:80/tcp**
* **443:443/tcp**
{{:pi-hole:portainer_-_create_container_-_pihole.png?800|}}
----
==== Map some volumes ====
In **Advanced container settings**:
* Click on the **Volumes** tab.
* Click **map additional volume**.
* Container:
* **/etc/dnsmasq.d**.
* **Bind**.
* Host:
* **/home/peter/pihole/dnsmasq.d**.
* **Bind**.
* Click **map additional volume**.
* Container:
* **/etc/pihole**.
* **Bind**.
* Host:
* **/home/peter/pihole/pihole**.
* **Bind**.
**NOTE:** Bind mounts are used rather than standard volumes since that allows the location to the folder to be mapped instead of creating a volume in the Docker volumes folder.
The /home/peter/pihole/ directory will be automatically created.
{{:pi-hole:portainer_-_create_container_-_pihole_-_advanced_container_settings_-_volumes.png?800|}}
----
==== Set up the network ====
This also sets the DNS the image should use.
In **Advanced container settings**:
* Click on the **Network** tab.
* Network: **bridge**.
* Hostname: **pihole**.
* Primary DNS Server: **127.0.0.1**.
* Secondary DNS Server: **192.168.1.1**.
**NOTE:** As of version 4.1.1 of Pi-Hole, the DNS server for the Docker container itself, localhost (127.0.0.1), must be set as the primary DNS server.
The secondary DNS server can be any other DNS server you prefer.
{{:pi-hole:portainer_-_create_container_-_pihole_-_advanced_container_settings_-_network.png?800|}}
----
==== Set the Environment ====
Ensures that Pi-hole starts automatically.
In **Advanced container settings**:
* Click on the **Env** tab.
* Click **Add environment variable**.
* Name: **TZ**
* Value: **Europe/Jersey**.
* Click **Add environment variable**.
* Name: **DNS1**
* Value: **192.168.1.1**.
* Click **Add environment variable**.
* Name: **DNS2**
* Value: **1.1.1.1**.
* Click **Add environment variable**.
* Name: **WEBPASSWORD**
* Value: **Password to use with Pi-Hole**.
**NOTE:** Pi-hole will default to Google DNS Servers of 8.8.8.8 and 8.8.4.4 if the **DNS1** or **DNS2** environment variables are not set.
If only 1 upstream DNS server is wanted, put **no** as the value for the **DNS2** variable, otherwise it will default to Google secondary DNS server 8.8.4.4.
It is recommended to have two upstream DNS servers in case one goes down.
{{:pi-hole:portainer_-_create_container_-_pihole_-_advanced_container_settings_-_env.png?800|}}
----
==== Set the Restart Policy ====
Ensures that Pi-hole starts automatically.
In **Advanced container settings**:
* Click on the **Restart Policy** tab.
* Click **Unless Stopped**.
{{:pi-hole:portainer_-_create_container_-_pihole_-_advanced_container_settings_-_restart_policy.png?800|}}
----
==== Deploy the Container ====
Click **Deploy the Container**.