I'm running pi-hole in docker and using tag pihole/pihole:v5.0.
When I see the sha256:788fa841f00633e23f5c40775dad6844262b6546d021441626639984cd5f710a it does not match the current sha256:27d9514c4c580f1d1a3ab33586b90652554e71d7be682c5c948ef346359c6479
from the dockerhub site. Mine is over 20 days old and I've been trying to update it to ones that are tagged as being newer. Or at least match / have some commonality to ones in dockerhub.
I have deleted my container rmi the image to ensure I don't have an image and then when I do a docker pull pihile/pihole:v5.0 I get the same over version not listed in dockerhub.
I'm sure I'm doing something wrong. My goal is to be able to use docker to automate the image pull but I really like to verify that I have the version that I should have.
Thanks for the help.
Did you try pihole/pihole:latest
yet?
I will give that a try right now.
It just pulled: sha256:788fa841f00633e23f5c40775dad6844262b6546d021441626639984cd5f710a
docker images
pihole/pihole latest 788fa841f006 19 days ago 295MB
What is the output from docker info
? Specifically the Architecture.
Here is my output from docker info. This is a Debian VM running on top of Proxmox, the host has an Intel Xeon (amd64) arch.
docker@docker:~$ docker info
Client:
Debug Mode: false
Server:
Containers: 5
Running: 5
Paused: 0
Stopped: 0
Images: 5
Server Version: 19.03.9
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 7ad184331fa3e55e52b890ea95e65ba581ae3429
runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
init version: fec3683
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.19.0-8-amd64
Operating System: Debian GNU/Linux 10 (buster)
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 23.54GiB
Name: docker
ID: CB7Z:WMLG:T47K:B5JW:FPWX:JDRW:5LHC:AISL:FDE6:ADA2:R63C:KFW2
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
WARNING: No swap limit support
Okay, and your question was that you see the wrong hash for pihole/pihole:v5.0
? What does the local image store show for the pulled versions? docker image ls | grep pihole
Here is what it show.
pihole/pihole latest 788fa841f006 2 weeks ago 295MB
but when I do a docker image inspect pihole/pihole, this is the ID that I get which doesn't seem to match what's on docker hub.
"Id": "sha256:788fa841f00633e23f5c40775dad6844262b6546d021441626639984cd5f710a",
sha256:788fa841f00633e23f5c40775dad6844262b6546d021441626639984cd5f710a
is version 5.0, a.k.a latest
.
To confirm run docker run --rm --entrypoint 'pihole-FTL' pihole/pihole --version
What about this from docker hub:
pihole/pihole:latest
DIGEST:sha256:27d9514c4c580f1d1a3ab33586b90652554e71d7be682c5c948ef346359c6479
and
pihole/pihole:v5.0
DIGEST:sha256:27d9514c4c580f1d1a3ab33586b90652554e71d7be682c5c948ef346359c6479
docker run --rm --entrypoint 'pihole-FTL' pihole/pihole --version
v5.0
Digest and ID are not the same thing.
Well that would explain why I couldn't find mine on Docker Hub. Is there a way I can visually use Docker Hub to verify that it's pulling the right Digest / ID?
docker images --digests | grep pihole
Thanks, I can't find the one that comes up in Docker Hub.
docker@docker:~$ docker images --digests | grep pihole
pihole/pihole latest sha256:d586f1a05c2a81b224d2c30d33ab9081b8baa0471f87d900d55e6155ed89cb08 788fa841f006 2 weeks ago 295MB
Chances are you probably won't. It has to do with Docker and manifests and a few other variables. Without a deep dive the best you will have is to trust the tags.
Generally it's a bad idea to use latest
as that will move to a different image without your involvement. Pin to a versioned release, so use pihole/pihole:v5.0
instead. That will always be version 5.0.
I can tell you that you are on the version 5.0 image however.
docker images --digests | grep pihole
pihole/pihole latest sha256:d586f1a05c2a81b224d2c30d33ab9081b8baa0471f87d900d55e6155ed89cb08 788fa841f006 2 weeks ago 295MB
pihole/pihole v5.0 sha256:d586f1a05c2a81b224d2c30d33ab9081b8baa0471f87d900d55e6155ed89cb08 788fa841f006 2 weeks ago 295MB
pihole/pihole v4.4 sha256:8c172c4cf344232a137202811b0c13a0542551076798d7635ef5368f40d1fe71 694e8aa9d588 2 months ago 289MB
Ok, thank you for your help troubleshooting. I mentally struggle with trusting something that I can't verify myself.
For now, I'll make sure to go in and pin it to v5.0.
Until I'm more comfortable with Dockers in general, I'll probably go back to a Pi-hole VM where I have some scripts to automate the base os updates and can run pihole -up manually.
Thanks again for the troubleshooting and amazing project!
If it's the pihole/pihole
image then you can be pretty confident that it's our image. It would be pretty difficult for someone to put an image up in our place. (And we'd know it really quickly, we'd tell you about it as well.)
As for the :latest
tag, this is a good post on the topic: What's Wrong With The Docker :latest Tag? ยท vsupalov.com