Skip to content
smegoff edited this page Jan 2, 2021 · 4 revisions

How to properly upgrade a container the Docker way (also the podman way).

  1. Update container
    podman pull docker.io/path/to/application

  2. Stop old container and remove it
    podman stop containername
    podman rm containername

  3. Start it back up using the full run line for that specific container from when you initially set it up.
    podman run -d ...

  4. Done!

Example:

SSH into your UDM-Pro. Below is an example using the above method. Ignore the errors.

1. Update container

podman pull pihole/pihole

  • Trying to pull docker.io/pihole/pihole...
  • Getting image source signatures
  • Copying blob aceecb32d1c3 skipped: already exists
  • Copying blob acddc8599c40 done
  • Copying blob 601e6d5456ad done
  • Copying blob 77b7b15e4ba3 done
  • Copying blob 2bda20ad97c9 done
  • Copying blob af3b2c6c3d5e done
  • Copying blob 9f81da54744c done
  • Copying blob dcbc3e28d670 done
  • Copying config 31367245f4 done
  • Writing manifest to image destination
  • Storing signatures
  • 31367245f483781b1fcdf1b95c54881d647fc822e540cd467ad9551132eba97a

2. Stop the current container.

podman stop pihole

  • 6bfb8653de17f7d406967ee98a67569d589d7a9e3b949d98003735ddbb0fa892

3. Remove the current container

podman rm pihole

  • ERRO[0000] Error removing timer for container 6bfb8653de17f7d406967ee98a67569d589d7a9e3b949d98003735ddbb0fa892 healthcheck: unable to get systemd connection to remove healthchecks: dial unix /run/systemd/private: connect: no such file or directory
  • 6bfb8653de17f7d406967ee98a67569d589d7a9e3b949d98003735ddbb0fa892 (ignore the above error)

4. Create and run the Pi-hole docker container. The following command sets the upstream DNS servers to 1.1.1.1 and 8.8.8.8. (Change the time zone to suit your needs.

podman run -d --network dns --restart always \
--name pihole \
-e TZ="Pacific/Auckland" \
-v "/mnt/data/etc-pihole/:/etc/pihole/" \
-v "/mnt/data/pihole/etc-dnsmasq.d/:/etc/dnsmasq.d/" \
--dns=127.0.0.1 \
--dns=1.1.1.1 \
--dns=8.8.8.8 \
--hostname pi.hole \
-e VIRTUAL_HOST="pi.hole" \
-e PROXY_LOCATION="pi.hole" \
-e ServerIP="10.0.5.3" \
-e IPv6="False" \
pihole/pihole:latest
  • ERRO[0000] unable to get systemd connection to add healthchecks: dial unix /run/systemd/private: connect: no such file or directory
  • ERRO[0000] unable to get systemd connection to start healthchecks: dial unix /run/systemd/private: connect: no such file or directory
  • 09d9c3c3cbb25fb54720e29e687cb6c5146d7a61121f36e6b117843aca7cf857 (ignore these errors)

5. Confirm the updated container is running.

podman ps

  • 09d9c3c3cbb2 docker.io/pihole/pihole:latest 21 seconds ago Up 21 seconds ago pihole
  • 49a13013baf6 localhost/unifi-os:current /sbin/init 5 hours ago Up 5 hours ago unifi-os

6. Log into your pihole http://<its.ip.here>/admin and confirm its working.