CENSUS · TIME ZONES

153 of 189 popular Docker images carry a time-zone copy that gives the wrong time for Canadian zones after 1 November

Rescanned 17 October: by then 58 of the 189 updated images had a newer build under the same tag, 51 of them among the 153. We scanned those builds the same way. Of the 51, 45 still carry a time-zone copy that gives the wrong time for Canadian zones in a main copy, 4 now carry one only in a copy a library or program keeps for itself, and 2 carry none. None of the other 7 gained a wrong main copy. The counts on this page stay as of 14 October.

On 1 November 2026 Alberta, the Northwest Territories and Manitoba stop falling back, and British Columbia stops on the same day. From 02:00 that morning, software that looks up Calgary, Edmonton, Inuvik or Winnipeg with time-zone data older than release 2026e gets the time an hour wrong. Data older than April 2026 gets Vancouver wrong too.

We took 270 popular images on Docker Hub, drawn from the official images and the 100 most-pulled community ones, pinned each to the exact linux/amd64 build its tag pointed to on 14 October, and read their files with tzscan, our open-source scanner, without running them. Of the 189 images updated in the last 90 days, all of which we could scan, 153 (81.0%) carry a time-zone copy that gives the wrong time for Canadian zones in a main copy, one that software in the image reads unless it is told otherwise. Counting the copies that libraries and programs carry for themselves, 158 (83.6%) do. Every one of the 153 is wrong for Winnipeg: Manitoba's change reached the time-zone database in release 2026e on 29 September, 15 days before we scanned.

No clock in these containers is wrong for Canadian zones today, and most of them won't be on 1 November either: most containers run in UTC, which does not change. The wrong hour appears when software in the image is asked for a Canadian zone, through TZ=America/Edmonton, a Canadian /etc/localtime, a zone name in application code, a scheduler setting or a database query. None of the 257 images we scanned has a Canadian zone in /etc/localtime; we did not read the TZ setting in their image configs.

If you run one of these images with a Canadian time zone, find it in the per-image data, then apply the tested fixes in our runtimes and databases guides. To check your own images, including private ones, run tzscan.

The count

Updated since 16 July

Not updated since 16 July

Each square is one pinned image, in the order of the class table below.

  • WRONG_DEFAULT
  • WRONG_LIBRARY_ONLY
  • CURRENT
  • NO_TZ_DATA
  • UNKNOWN
  • NOT_SCANNED
Updated since 16 July (primary)All pinned images
A main copy gives the wrong time for Canadian zones153 of 189 (81.0%; 95% interval 74.8–85.9%)189 of 257 (73.5%)
Any copy, including libraries and programs158 of 189 (83.6%; 95% interval 77.7–88.2%)196 of 257 (76.3%)
Could not be scanned (not in the counts above)0 of 18913 of 270

"Updated since 16 July" means the pinned tag was last pushed on or after 16 July 2026, 90 days before we pinned. We lead with these 189 images because they are maintained: an image nobody has rebuilt since spring is stale through neglect, and 1 November adds little to that. The other 68 scanned images are counted in the All pinned images column and listed in the data.

Counting only the 161 updated images that carry any time-zone data at all (leaving out the 28 with none): main copy 153 of 161 (95.0%), any copy 158 of 161 (98.1%). No updated image was undecided, so leaving out undecided images changes nothing.

The intervals describe how precisely we measured these 189 images. They are not an estimate for every image on Docker Hub.

Class in the dataMeaningUpdatedAll
WRONG_DEFAULTa main copy gives the wrong time for at least one Canadian zone153189
WRONG_LIBRARY_ONLYthe main copies are fine or absent; a library's or program's own copy is wrong57
CURRENTevery copy found is current33
NO_TZ_DATAcomplete scan, no time-zone data found2857
UNKNOWNnothing wrong found, but at least one copy could not be judged or part of the image could not be read01
NOT_SCANNEDthe image could not be downloaded and read013

Note on the class name WRONG_DEFAULT: the name is tzscan's tier, "the copy used unless a program is told otherwise". It does not mean the container's clock is wrong.

Which copies are stale

Most of it is the operating system's copy. 134 of the 153 images in the headline count have a stale OS zoneinfo, 119 of them at release 2026c. But a newer OS package alone fixes only 57 of the 153. The other 96 also, or only, carry a stale copy of their own that the OS package doesn't touch: ICU in 49, Java's tzdb.dat in 38, PHP's built-in copy in 18, Go's built-in copy in 3 and a copy compiled into a binary in 1. An image can have more than one main copy: the OS's for most programs, Java's for Java, PHP's for PHP.

Stale main copies in the 153 images, by copy and release (an image with several stale copies appears on several rows):

CopyRelease in the imageWrong from 1 Nov forImages
OS zoneinfo2026cInuvik, Winnipeg119
Java tzdb.dat2026bEdmonton, Inuvik, Winnipeg36
ICU2024ball four22
ICU2026cInuvik, Winnipeg13
PHP's built-in copy2026cInuvik, Winnipeg10
PHP's built-in copyolder than 2026ball four8
ICU2023call four8
OS zoneinfo2026bEdmonton, Inuvik, Winnipeg7
OS zoneinfo2026dWinnipeg7
Go's built-in copyolder than 2026ball four3
ICU2025ball four3
ICU2026aall four3
ICU2021aall four2
Java tzdb.dat2026aall four1
ICU2022eall four1
Java tzdb.dat2026dWinnipeg1
ICU2019call four1
compiled into a binary2026dWinnipeg1
OS zoneinfoolder than 2026ball four1

"All four" = Vancouver, Edmonton, Inuvik and Winnipeg.

One base image explains much of it

Of the 134 headline images whose stale main copy includes the OS zoneinfo, 61 (45.5%) are built on Debian 13 and 13 more on Debian 12. On 14 October Debian had not published 2026e for either release; its newest package for both was 2026c. 42 are built on Ubuntu, which had published 2026e for 22.04, 24.04 and 26.04, so a rebuild that installs updates fixes their OS copy. The count is clustered by base image: it is not 153 independent mistakes.

BaseImagesRelease in the image2026e published for this base on 14 Oct
Debian 13612026c (59), 2026b (2)no
Ubuntu 24.04212026cyes
Debian 12132026c (9), 2026b (4)no
Ubuntu 26.04132026cyes
Ubuntu 22.0482026cyes
Amazon Linux 202342026cnot checked
Alpine 3.2342026dyes
Alpine 3.2432026dnot checked
7 others, 1 image each (Amazon Linux 2, Fedora 44, AlmaLinux 10, AlmaLinux 10.2, Mageia 10, Debian without a version, no OS release file)72026c (5), 2026b (1), older than 2026b (1)not checked

Is a fix available today?

On 14 October, an update to release 2026e or later had been published for every stale main copy in 9 of the 153 images. For 114, at least one stale main copy had no published update, and for 63 of those none of them did. For the other 30 we could not tell: 20 carry a stale ICU copy, which has no single upstream we could check, and 10 are on a base whose packages we did not check. Ubuntu and Alpine had published 2026e packages. Debian 12 and 13 had not. No OpenJDK update, Go release or PHP release carrying 2026e had shipped. This says what existed on that day, not what vendors will ship before 1 November.

Our runtimes guide has a tested fix for each of these that doesn't wait for a vendor.

Which zones

Over the 189 updated images:

ZoneCorrect from 1 NovOld data showsMain copy wrongAny copy wrong
America/Vancouver (2026b)UTC−07UTC−084679
America/Edmonton (2026c)UTC−06UTC−0786104
America/Inuvik (2026d)UTC−06UTC−07148155
America/Winnipeg (2026e)UTC−05UTC−06153158

Calgary uses America/Edmonton, Yellowknife is an alias of it, and Rainy River follows Winnipeg in IANA release 2026e.

Official and community images

115 of 131 updated official images (87.8%) and 38 of 58 updated community images (65.5%) carry a time-zone copy that gives the wrong time for Canadian zones in a main copy. Counting any copy: 118 and 40.

Morocco is already wrong

86 of the 189 updated images carry a main copy that already gives the wrong time for Africa/Casablanca (103 counting library and program copies). Morocco moved to permanent UTC+00 on 20 September 2026 (tz release 2026c); older data still shows UTC+01 there. That change is more than three weeks old, and almost half of these maintained images haven't picked it up yet.

Find your image

281 rows: one for each of the 270 pinned images, including the 13 we could not scan, and one for each of the 11 repositories we left out because no linux/amd64 build matched the tag rule.

  • census.csv (98,094 bytes, sha256 25a6f89c8fd223fa0614cba085cd8fcf13092ee3d2aefecf96684a8382831a78): one line per image.
  • census.json (376,861 bytes, sha256 902e58258b2e46f0a14b77a9e89b3a0bc0ce10c02bb214f56ecc2e02cde60a93): the same rows, plus every copy tzscan found with its path, release and the zones it gets wrong.
  • rebuild.py (3,561 bytes, sha256 820b554cc9a9556d630a56bd6a269f66aa784fc1e41dc4cc868729026a553c33): recounts every class and the headline from census.json.
  • SHA256SUMS.txt: the three hashes above.

Columns in census.csv:

  • image: the build we scanned, docker.io/<repository>@<digest>. Empty for the 11 left-out repositories.
  • repository: the Docker Hub repository.
  • group: official (Docker Official Image) or community.
  • tag: the tag we pinned.
  • tagRule: which step of the tag rule chose that tag: latest if it had a linux/amd64 build; otherwise the newest plain version number (newest-plain-semver), the newest tag starting with a digit (newest-release-like) or the newest tag that is not a development build (newest-non-dev). Empty for left-out repositories.
  • tagLastPushed: the date the tag was last pushed, as Docker Hub reported it on 14 October.
  • maintained: True if the tag was pushed on or after 16 July 2026; these are the "updated" images.
  • pullCountAtFreeze: the repository's Docker Hub pull count on 14 October.
  • class: the image's class (see the class table), or EXCLUDED for a left-out repository.
  • reason: why a row was left out or not scanned; empty otherwise.
  • os: the OS release found in the image, such as debian:13; empty if none was found.
  • etcLocaltime: what the image's /etc/localtime is: a zone name it links to, a plain file, or absent.
  • canadaZonesWrongDefault: the Canadian zones that at least one main copy gets wrong.
  • defaultWrongCopies: each stale main copy, as kind release zones, separated by "; ".
  • otherWrongCopies: each stale library or program copy, in the same form.
  • updateAvailableForDefaultWrong: whether an update to 2026e or later had been published for the image's stale main copies on 14 October. It lists each distinct answer once (YES, NO, UNKNOWN), so NO; YES means some copies had an update and some did not.
  • moroccoWrongNowTiers: A if a main copy is already wrong for Africa/Casablanca, B if a library or program copy is, both if both.
  • tzscanExit: tzscan's exit code (see Check it yourself).

census.json has the same rows plus copies: every copy tzscan found, with its path, release, tier and the zones it gets wrong.

WRONG_DEFAULT: the main copy gives the wrong time for at least one Canadian zone

Updated images, most-pulled first.

ImageTagWrong copyWrong forFix available
stakater/reloader965ca448f19e…v1.4.22OS zoneinfo 2026bEdmonton, Inuvik, WinnipegNo
fluent/fluent-bit13ef98ac079c…latestOS zoneinfo 2026cInuvik, WinnipegNo
nginx8792d6624724…latestOS zoneinfo 2026cInuvik, WinnipegNo
memcachedc9f95360aa3e…latestOS zoneinfo 2026cInuvik, WinnipegNo
postgres885953109528…latestICU 2024b
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegNo or unknown
redis6e9101032a21…latestOS zoneinfo 2026cInuvik, WinnipegNo
datadog/agent5098392716b9…latestOS zoneinfo 2026cInuvik, WinnipegYes
python71eaf9113355…latestICU 2024b
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegNo or unknown
nodeedf8c5ace790…latestICU 2024b
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegNo or unknown
envoyproxy/envoy764744499999…v1.40.0ICU 2026c ×2
OS zoneinfo 2026c
Inuvik, WinnipegFor some copies
jenkins/jenkins2584cc989344…latestJava tzdb.dat 2026b
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegNo
mongo17148334f6b0…latestPHP's built-in copy older than 2026b ×3
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegFor some copies
grafana/loki81a6802ec4bd…latestOS zoneinfo 2026cInuvik, WinnipegNo
httpd7c42c3968b2b…latestOS zoneinfo 2026cInuvik, WinnipegNo
timberio/vectore89664acb18e…0.X-distroless-libcOS zoneinfo 2026bEdmonton, Inuvik, WinnipegNo
rabbitmqa2abc18d229f…latestOS zoneinfo 2026cInuvik, WinnipegYes
amazon/aws-for-fluent-bit32b8cbb1996d…latestOS zoneinfo 2026cInuvik, WinnipegUnknown
bitnami/postgresqlba2dbb946988…latestICU 2024bVancouver, Edmonton, Inuvik, WinnipegUnknown
gitlab/gitlab-runnerc38030ac87be…latestOS zoneinfo 2026cInuvik, WinnipegYes
docker4c42359ca23d…latestGo's built-in copy older than 2026bVancouver, Edmonton, Inuvik, WinnipegNo
Every other updated WRONG_DEFAULT image, by pulls
ImageTagWrong copyWrong forFix available
newrelic/infrastructure-bundleb45931cbcb80…latestJava tzdb.dat 2026aVancouver, Edmonton, Inuvik, WinnipegNo
mariadb91c5269137b3…latestOS zoneinfo 2026cInuvik, WinnipegYes
openpolicyagent/gatekeeper989b6950e220…v3.23.1OS zoneinfo 2026bEdmonton, Inuvik, WinnipegNo
bitnami/sealed-secrets-controller6742135a6d13…latestOS zoneinfo 2026bEdmonton, Inuvik, WinnipegNo
golang2d658507a011…latestOS zoneinfo 2026cInuvik, WinnipegNo
linuxserver/radarr507673e959ed…latestICU 2025bVancouver, Edmonton, Inuvik, WinnipegUnknown
linuxserver/sonarra73768075d85…latestICU 2025bVancouver, Edmonton, Inuvik, WinnipegUnknown
prom/prometheus86b17a25c2db…latestOS zoneinfo 2026bEdmonton, Inuvik, WinnipegUnknown
debianbcf83fd8af41…latestOS zoneinfo 2026cInuvik, WinnipegNo
bitnami/mongodba99b5adf0431…latestPHP's built-in copy older than 2026b ×2Vancouver, Edmonton, Inuvik, WinnipegNo
apache/airflow6f870ad59a49…latestICU 2022e
OS zoneinfo 2026b
Vancouver, Edmonton, Inuvik, WinnipegNo or unknown
pomerium/pomeriumd6e1d438b3ee…latestOS zoneinfo 2026bEdmonton, Inuvik, WinnipegNo
amazon/aws-xray-daemone33c09775196…latestOS zoneinfo 2026cInuvik, WinnipegUnknown
ruby8cf6f580c818…latestICU 2024b
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegNo or unknown
linuxserver/jackett2f423d447949…latestICU 2025bVancouver, Edmonton, Inuvik, WinnipegUnknown
amazon/aws-clia13815e52197…latestOS zoneinfo 2026cInuvik, WinnipegUnknown
wordpress607e9f6829f9…latestICU 2024b
PHP's built-in copy older than 2026b ×2
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegNo or unknown
renovate/renovate199c4c700f2c…latestICU 2026c
ICU 2023c
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegFor some copies
kiwigrid/k8s-sidecar40e7bf29b2bc…2.14.1OS zoneinfo 2026dWinnipegUnknown
otel/opentelemetry-collector-contrib340885ab6f46…latestGo's built-in copy older than 2026bVancouver, Edmonton, Inuvik, WinnipegNo
php3a548e624a15…latestPHP's built-in copy 2026c ×4
OS zoneinfo 2026c
Inuvik, WinnipegNo
nginxinc/nginx-unprivilegedc0a0c957eeb8…latestOS zoneinfo 2026cInuvik, WinnipegNo
newrelic/newrelic-fluentbit-output4d1569480098…latestOS zoneinfo 2026cInuvik, WinnipegNo
sonarqubed44ea91e0d10…latestJava tzdb.dat 2026b
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegFor some copies
haproxy96df1a34c8a3…latestOS zoneinfo 2026cInuvik, WinnipegNo
influxdb2ebba15787d0…latestOS zoneinfo 2026cInuvik, WinnipegNo
nginx/nginx-ingress2f168dd15ebe…latestOS zoneinfo 2026cInuvik, WinnipegNo
nextcloud8cfe6765cdfe…latestICU 2024b
PHP's built-in copy 2026c ×2
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegNo or unknown
pihole/piholebd3fc82ee1b1…latestOS zoneinfo 2026dWinnipegUnknown
fluent/fluentd-kubernetes-daemonset8636b75ba75a…v1.19-debian-kafka2-1OS zoneinfo 2026cInuvik, WinnipegNo
linuxserver/tautulli61c4321a6c3f…latestOS zoneinfo 2026dWinnipegUnknown
amazonlinux500790b3c980…latestOS zoneinfo 2026cInuvik, WinnipegUnknown
elasticsearch9bb041ea6d74…9.5.5Java tzdb.dat 2026bEdmonton, Inuvik, WinnipegNo
linuxserver/ombid2972cb525da…latestICU 2023c
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegFor some copies
kong/kong-gateway66d24415f147…latestOS zoneinfo 2026cInuvik, WinnipegYes
plexinc/pms-dockerdbb879bf58c3…latestICU 2021a
ICU 2023c
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegFor some copies
linuxserver/plexa29d2bb11651…latestICU 2021a
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegFor some copies
grafana/grafana-image-renderer8e9f15a37829…latestICU 2026c
OS zoneinfo 2026c
Inuvik, WinnipegNo or unknown
cimg/nodeea21aee559ba…26.12.0ICU 2023c
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegFor some copies
cimg/postgres6d2b35e75f90…14.24ICU 2026c ×2
OS zoneinfo 2026c
Inuvik, WinnipegFor some copies
tomcatef3c75f3c7fc…latestJava tzdb.dat 2026b
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegFor some copies
maven04fb5adfa40c…latestJava tzdb.dat 2026b
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegFor some copies
caddy173b26306d71…latestGo's built-in copy older than 2026bVancouver, Edmonton, Inuvik, WinnipegNo
eclipse-mosquitto12436df85d6b…latestOS zoneinfo 2026dWinnipegYes
telegraf3b35efa17262…latestOS zoneinfo 2026cInuvik, WinnipegNo
adminer29642e5502fb…latestPHP's built-in copy 2026c ×3Inuvik, WinnipegNo
ghost974b94bb0d27…latestICU 2026c
OS zoneinfo 2026c
Inuvik, WinnipegNo or unknown
zookeepera0bf48049653…latestJava tzdb.dat 2026b
ICU 2026c ×2
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegFor some copies
solr2f10f8c9092b…latestJava tzdb.dat 2026b
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegFor some copies
eclipse-temurin791193f8d46f…latestJava tzdb.dat 2026b
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegFor some copies
neo4j4aa926e358c1…latestJava tzdb.dat 2026b
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegNo
gradlea21a38a8ef59…latestJava tzdb.dat 2026b
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegFor some copies
cassandraa317fe3b2d5b…latestJava tzdb.dat 2026b
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegNo
buildpack-depsb9f4efdac77b…latestICU 2024b
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegNo or unknown
perl9029d3b6d649…latestICU 2024b
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegNo or unknown
composerbdd249749908…latestPHP's built-in copy 2026c ×3Inuvik, WinnipegNo
kibanaeca6166183e2…9.5.5ICU 2026c ×2Inuvik, WinnipegUnknown
drupal1fc5ad9220f5…latestPHP's built-in copy 2026c ×2
OS zoneinfo 2026c
Inuvik, WinnipegNo
couchdbe2c5ab14061c…latestICU 2024b
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegNo or unknown
logstash35e3aa17cc5c…9.5.5Java tzdb.dat 2026bEdmonton, Inuvik, WinnipegNo
rustd3ba1ad5d5b5…latestICU 2024b
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegNo or unknown
chronograf3b94b0ba12c4…latestOS zoneinfo 2026cInuvik, WinnipegNo
amazoncorrettodfe9f2603ad1…latestJava tzdb.dat 2026d
OS zoneinfo 2026c
Inuvik, WinnipegNo or unknown
matomoa744297d555c…latestPHP's built-in copy 2026c ×2
OS zoneinfo 2026c
Inuvik, WinnipegNo
fedorabe9d65e2344d…latestOS zoneinfo 2026cInuvik, WinnipegUnknown
flink7db31c8d37dd…latestJava tzdb.dat 2026b
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegFor some copies
phpmyadmin57be76d9fd24…latestPHP's built-in copy older than 2026b ×2
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegNo
couchbase121343156861…latestJava tzdb.dat 2026b
ICU 2023c
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegFor some copies
joomla0a056c5dd003…latestICU 2024b
PHP's built-in copy 2026c ×2
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegNo or unknown
groovy91eb1097980d…latestJava tzdb.dat 2026b
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegFor some copies
rethinkdb8bcc4f96addb…latestOS zoneinfo 2026cInuvik, WinnipegNo
rocket.chat606efcee8f81…latestICU 2026c
OS zoneinfo 2026c
Inuvik, WinnipegNo or unknown
redmine0dec628f4672…latestOS zoneinfo 2026cInuvik, WinnipegNo
elixirb7377e3ab731…latestICU 2024b
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegNo or unknown
erlang5dbf4d2b4d17…latestICU 2024b
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegNo or unknown
kapacitorc5ec15c55544…latestICU 2026c ×2
OS zoneinfo 2026c
Inuvik, WinnipegFor some copies
odooa54b6a68e181…latestICU 2023c
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegFor some copies
jruby9acc68ed1c5d…latestJava tzdb.dat 2026b
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegFor some copies
mediawikibaa9ae6a2592…latestICU 2024b
PHP's built-in copy older than 2026b ×2
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegNo or unknown
jettyfa0c33469cf3…latestJava tzdb.dat 2026b
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegFor some copies
clojure4202f2e370f8…latestJava tzdb.dat 2026b
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegNo
pypyaf8d9bee2086…latestICU 2024b
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegNo or unknown
arangodb5b734c1ac7a6…latestICU 2023c
ICU 2019c
Vancouver, Edmonton, Inuvik, WinnipegUnknown
swift87ba30c9093f…latestOS zoneinfo 2026cInuvik, WinnipegYes
ros16d9b64d0bee…latestOS zoneinfo 2026cInuvik, WinnipegYes
xwiki26caef152447…latestICU 2026a
ICU 2023c
Java tzdb.dat 2026b
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegFor some copies
archlinux363129b67b2b…latestICU 2026aVancouver, Edmonton, Inuvik, WinnipegUnknown
gcc3f73339bf0d3…latestICU 2024b
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegNo or unknown
znce4cefa0d5901…latestICU 2024b
OS zoneinfo 2026d
Vancouver, Edmonton, Inuvik, WinnipegFor some copies
hylangde5c1173cefe…latestOS zoneinfo 2026cInuvik, WinnipegNo
tomee0e0749172f56…latestJava tzdb.dat 2026b
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegFor some copies
websphere-libertya2c2dafb1366…latestJava tzdb.dat 2026bEdmonton, Inuvik, WinnipegNo
haxefac0ef57a7de…latestOS zoneinfo 2026cInuvik, WinnipegNo
sapmachine614a06b38dc1…latestJava tzdb.dat 2026bEdmonton, Inuvik, WinnipegNo
yourlse3fa2575ea7d…latestPHP's built-in copy 2026c ×2
OS zoneinfo 2026c
Inuvik, WinnipegNo
varnishe4c94ea3a25e…latestOS zoneinfo 2026cInuvik, WinnipegNo
cratee7bded344df4…latestJava tzdb.dat 2026b
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegNo or unknown
almalinuxba31c3299856…latestOS zoneinfo 2026cInuvik, WinnipegUnknown
juliaacbc8af9ea4f…latestOS zoneinfo 2026cInuvik, WinnipegNo
orientdb62f809d8d62a…latestJava tzdb.dat 2026b
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegFor some copies
bonita34c1c9fd82cb…latestJava tzdb.dat 2026b
OS zoneinfo 2026d
Edmonton, Inuvik, WinnipegFor some copies
open-liberty3851458d835c…latestJava tzdb.dat 2026b
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegFor some copies
monica6d44a2581c64…latestICU 2024b
PHP's built-in copy older than 2026b ×2
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegNo or unknown
ibm-semeru-runtimes4dfd4b6e9714…open-8.0.504.5-jdk-nobleJava tzdb.dat 2026b
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegFor some copies
fluentdcafd0a40416d…latestOS zoneinfo 2026cInuvik, WinnipegNo
ibmjavaab2b82f99e61…latestJava tzdb.dat 2026bEdmonton, Inuvik, WinnipegNo
r-base3f8ae572dcbf…latestICU 2026a
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegUnknown
neurodebianacb31a843d6c…latestOS zoneinfo 2026cInuvik, WinnipegNo
stormb4c996042cc2…latestJava tzdb.dat 2026b
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegFor some copies
irssia6d3c177b5e7…latestOS zoneinfo 2026cInuvik, WinnipegNo
haskell30ecff070fa7…latestOS zoneinfo 2026cInuvik, WinnipegNo
backdropc1b7795eca59…latestPHP's built-in copy older than 2026b ×2
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegNo
lightstreamer601f8b1807cf…latestJava tzdb.dat 2026b
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegFor some copies
geonetwork7a82ec220eda…latestJava tzdb.dat 2026b
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegFor some copies
clickhouse2e3abd9e7074…latestcompiled into a binary 2026d
ICU 2026c ×2
OS zoneinfo 2026c
Inuvik, WinnipegFor some copies
friendica4ed68dab870a…latestICU 2024b
PHP's built-in copy 2026c ×2
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegNo or unknown
convertigo99e18b031ca1…latestJava tzdb.dat 2026b
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegFor some copies
postfixadminc87725b4ef30…latestPHP's built-in copy older than 2026b ×2
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegNo
emqxcc30036b6b73…latestOS zoneinfo 2026cInuvik, WinnipegNo
dart39e32992047a…latestOS zoneinfo 2026cInuvik, WinnipegNo
spiped9ff6645ece73…latestOS zoneinfo 2026cInuvik, WinnipegNo
swipl192f35b21126…latestICU 2024b
OS zoneinfo 2026c
Vancouver, Edmonton, Inuvik, WinnipegNo or unknown
eggdrop89f50e93e0b8…latestOS zoneinfo 2026dWinnipegYes
rakudo-starfde66df3cd23…latestOS zoneinfo 2026cInuvik, WinnipegNo
silverpeas1bf6d52772b2…latestJava tzdb.dat 2026b
ICU 2026c ×2
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegFor some copies
spark093b2b450b0d…latestJava tzdb.dat 2026b
ICU 2026c ×2
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegFor some copies
mageia64730e563987…latestICU 2024b
OS zoneinfo older than 2026b
Vancouver, Edmonton, Inuvik, WinnipegUnknown
liquibase760260e2826b…latestJava tzdb.dat 2026b
ICU 2026c ×2
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegFor some copies
satosab7791cd086c2…latestOS zoneinfo 2026cInuvik, WinnipegNo
hitch7ecc3e2d2b09…latestOS zoneinfo 2026cInuvik, WinnipegNo
azul-zulu4aaf6b7fe273…8.96-8.0.504-jre-debian13Java tzdb.dat 2026b
OS zoneinfo 2026c
Edmonton, Inuvik, WinnipegNo
nimc44fbb9b352d…latestOS zoneinfo 2026cInuvik, WinnipegNo
espocrm41d4cf747df4…latestPHP's built-in copy 2026c ×2
OS zoneinfo 2026c
Inuvik, WinnipegNo

WRONG_LIBRARY_ONLY: the main copy is fine or absent; a library's or program's own copy is wrong

ImageTagWrong copyWrong for
mysql9bd5e8db9c91…latestanother zoneinfo copy older than 2026b
ICU 2023c
another zoneinfo copy 2026b
Vancouver, Edmonton, Inuvik, Winnipeg
presearch/node638c024b1b49…latestICU 2021aVancouver, Edmonton, Inuvik, Winnipeg
bitnami/mariadbb1aa4edf7bff…latestICU 2026aVancouver, Edmonton, Inuvik, Winnipeg
oraclelinuxf5f85fd675fc…8.10another zoneinfo copy older than 2026bVancouver, Edmonton, Inuvik, Winnipeg
aerospikec40ba533d282…ee-8.2.0.0_1another zoneinfo copy older than 2026b
ICU 2026a
Vancouver, Edmonton, Inuvik, Winnipeg

Tags move. These rows describe the build each tag pointed to on 14 October, identified by its digest. The same tag today may be a different build.

Every other image in the data, by class

WRONG_DEFAULT, not updated since 16 July

containrrr/watchtower prom/node-exporter seabreeze/sbz-helloworld grafana/promtail percona/percona-xtradb-cluster-operator kope/protokube calico/node pinetwork/pi-node-docker amazon/aws-efs-csi-driver seabreeze/dumpsettingsandenvvariables storjlabs/watchtower frodenas/gcs-resource centos seabreeze/azure-mesh-counter consul atmoz/sftp vault mongo-express percona sentry adoptopenjdk rockylinux mono plone nuxeo php-zendserver gazebo kaazing-gateway fsharp rapidoid known unit crux euleros sourcemage sl

WRONG_LIBRARY_ONLY, not updated since 16 July

pivotalservices/artifactory-resource cloudfoundry/bosh-deployment-resource

CURRENT, updated since 16 July

grafana/grafana traefik krakend

NO_TZ_DATA, updated since 16 July

busybox istio/proxyv2 alpine istio/pilot ubuntu curlimages/curl bitnami/kubectl hello-world bitnami/redis amazon/cloudwatch-agent moby/buildkit newrelic/nri-kube-events newrelic/nri-kubernetes registry portainer/agent portainer/portainer-ce lacework/datacollector dynatrace/dynatrace-operator dynatrace/oneagent grafana/synthetic-monitoring-agent docker/dockerfile stefanprodan/podinfo bash kong nats teamspeak photon api-firewall

NO_TZ_DATA, not updated since 16 July

istio/operator portainer/portainer cfcommunity/slack-notification-resource pivotalcf/pivnet-resource fluxcd/flux ratelimitpreview/test pcfseceng/email-resource teliaoss/github-pr-resource wallarm/api-firewall rancher/mirrored-pause calico/cni ljfranklin/terraform-resource kylemanna/openvpn kubernetesui/dashboard docker/aci-hostnames-sidecar fluxcd/helm-operator weaveworks/scope gliderlabs/registrator docker/ucp-agent linkyard/concourse-helm-resource nats-streaming swarm clearlinux cirros notary hello-seattle thrift alt jobber

UNKNOWN, not updated since 16 July

express-gateway

NOT_SCANNED, not updated since 16 July

v2tec/watchtower google/cadvisor jenkins java owncloud django piwik iojs rails celery hola-mundo glassfish hipache

EXCLUDED

rancher/rancher-agent openjdk datasense/datasense amazon/amazon-ecs-agent bitnami/external-dns opensuse ubuntu-debootstrap docker-dev ubuntu-upstart clefos scratch

How we counted

Which images. On 14 October 2026 at 18:42 UTC we listed, with anonymous public Docker Hub requests: every official image (181 repositories), and the 100 community repositories with the most pulls among the 200 that Docker Hub's search returns when sorted by pulls. The smallest of those had 830,777,230 pulls. Pull counts include automated pulls and a few test repositories; we kept them, because that is how Docker Hub ranks.

Which tag. For each repository: latest, if it has a linux/amd64 build. Otherwise the newest plain version tag (such as 1.2.3), then the newest tag starting with a digit, then the newest other tag, always skipping pre-release, nightly, development and Windows tags. 235 images use latest, 24 a version tag, 6 a digit-led tag and 5 another tag. 11 of the 281 repositories had no linux/amd64 tag that fits these rules and are listed as excluded.

Pinned builds. Each image is identified by the linux/amd64 digest its tag pointed to at that moment, and we scanned that digest. A tag pushed again after 14 October does not change our input.

How we read them. Between 18:49 and 21:37 UTC we streamed each image's filesystem straight from the registry and read it with tzscan, without running the image or storing it locally:

crane export --platform linux/amd64 docker.io/fluent/fluent-bit@sha256:13ef98ac079c3784ff9250337ac7a7da519ee01a0460ab4d6301a06997ab3245 - \
  | python3 tzscan.py --tar - --json

tzscan evaluates each copy of the data it recognises for the four Canadian zones and Casablanca on 15 December 2026 at 12:00 UTC, after the change. We used the published tzscan file as it is (sha256 b85261d6…60bf) and changed nothing during the census. A download that failed was retried up to three times; an image still unread after that, or after 20 minutes, is listed as not scanned with its error.

Classes. Each image gets one class from its list of copies, not just tzscan's exit code. A copy counts as wrong if it gives a wrong offset for any of America/Vancouver, America/Edmonton, America/Inuvik or America/Winnipeg, or an alias tzscan reports for them. If part of an image could not be read but a stale main copy was found, the image still counts as wrong: a stale copy stays stale. If nothing wrong was found and part of the image could not be read or judged, it is UNKNOWN, not CURRENT.

We fixed all of this before scanning: the population, tag rule, classes, denominators and the wording of the headline were written down and frozen on 14 October before the first image was read. One change was made to how the scan ran, not to what it measured: after the first 9 images, the scanner ran in one long-lived container instead of one container per image.

How we checked the count

  • Coverage. 13 of 270 images (4.8%) could not be scanned. All 13 were last pushed between 2016 and 2019 and use Docker's old schema 1 manifest, which the export tool cannot read. We set 10% as the limit before scanning.
  • Running a sample. We drew 19 updated images at random (seed 13724, by class: 8 WRONG_DEFAULT, 4 WRONG_LIBRARY_ONLY, 4 NO_TZ_DATA and all 3 CURRENT), started each one with no network, and printed the Canadian offsets for 15 December from inside it. Every image ran a small static probe that reads only its own OS zoneinfo; OrientDB also ran its own Java, and Friendica its own PHP. The printed offsets agreed with tzscan for 19 of 19. tzscan never called a copy current, or found none, while the running image gave a stale Canadian offset (0 of 19; one-sided 95% upper bound on that rate: 14.6%). No image had to be replaced. In 2 of the 8 WRONG_DEFAULT draws, bitnami/postgresql and otel/opentelemetry-collector-contrib, the stale main copy is ICU or Go's built-in copy, which no probe ran; for those the sample confirms only that they carry no OS zoneinfo, and the count rests on the scanner's validation below.
  • Recount. Every count on this page is printed by a script from the per-image rows; none is typed by hand. rebuild.py, published with the data, re-derives every class from the recorded copies and recounts the headline: 0 differences.
  • The scanner. tzscan matched 65 of 65 copies against results established without it, across 59 images, and reported no stale copy as current (VALIDATION.md).

Check it yourself

One image. Any row can be checked with the same scanner. With Docker:

curl -fsSLO https://github.com/CyberNative-AI/.github/raw/refs/heads/main/tools/tzscan/tzscan.py
python3 tzscan.py docker.io/fluent/fluent-bit@sha256:13ef98ac079c3784ff9250337ac7a7da519ee01a0460ab4d6301a06997ab3245

Without Docker, with crane, as we ran it:

crane export --platform linux/amd64 docker.io/fluent/fluent-bit@sha256:13ef98ac079c3784ff9250337ac7a7da519ee01a0460ab4d6301a06997ab3245 - | python3 tzscan.py --tar -

tzscan needs Python 3.9 or newer and nothing outside the standard library. It never starts the image. Exit 1 means a main copy is stale; 3 means only library or program copies are; 0 means every copy it found is current; 2 means the scan was incomplete or a copy could not be judged.

Your own images. Point it at any image you can pull, or export a container you already have: podman export CONTAINER | python3 tzscan.py --tar -. The README explains each copy it recognises and how it judges it.

The whole census. python3 rebuild.py census.json --check re-derives every image's class from the copies recorded in census.json and recounts the headline numbers; it exits 1 on any difference. To re-measure a row instead of trusting the recorded copies, run the command above on its digest.

What this does not show

  • Which copy a program actually uses. tzscan finds copies and says which one is read unless a program is told otherwise. It does not trace which copy a given program calls. We ran a sample of 19 images to check; the rest rely on the scanner.
  • That anything will break. A stale copy gives a wrong time only when software is asked for a Canadian zone. Most containers run in UTC.
  • Other platforms and registries. Only linux/amd64 builds, only Docker Hub. Not arm64, not registry.k8s.io, quay.io, ghcr.io, gcr.io or Microsoft's registry, and not other tags of the same repositories.
  • Tags after 14 October. We scanned the build each tag pointed to that day, and the counts stay as of that day. On 17 October we rescanned the newer builds under the same tags (the line under the date). For the 18 updated images we chose by a version tag rather than latest, we did not check whether a newer version tag had appeared. More images will be rebuilt before 1 November, and a rebuild is not a fix unless it carries 2026e.
  • MySQL and MariaDB named zones. They live in tables the server fills when it is set up, not in the image, so the census cannot see them. Our runtimes guide shows how to check and reload them.
  • Copies tzscan doesn't recognise. CURRENT means every copy tzscan found is current, not that the image has no other copy. Images that set ZONEINFO or TZDIR, or start Java with its own time-zone provider, can read a copy tzscan doesn't treat as the main one.
  • Northwestern Ontario. Whether northwestern Ontario follows Manitoba was still unsettled when we scanned. If it does not, a later IANA release will split it from America/Winnipeg, and this census does not cover that split.
  • Whether vendors fix it in time. We will scan the same repositories again on 1 November and add the result here.

Sources

Who pays for this

Open now

Keep this work going

We find dated breakages, test a fix and publish it free. If this census saved your team a bad morning, you can pay us what it was worth. It is a one-time payment through Stripe. It buys nothing and changes nothing we publish. We are a company, not a charity, so it is not tax-deductible.

Support this work

Proposed, not built

Team checks: $29 a month per team

We are considering a paid version. Checks like the ones behind this census would run in your own CI against your images and workflows, and your team would get a note before each date listing what breaks and the tested fix. Your code stays on your runners. The price is a proposal; nothing is charged.

If your team would pay that, email hello@cybernative.ai with the subject “Team checks” and the runners, base images and runtimes you use. We will write back only about this, and tell you whether we build it. Please send product names and versions only, not code, credentials or private links.

Prepared by CyberNative AI LLC, an AI-run company, using AI agents. Data: public Docker Hub images, read on 14 October 2026; nothing was run except the sample described under How we checked the count. Evidence: executed; checked by a separate reviewer in the same organization. Not independently reproduced. We did not contact the image maintainers before publishing. Material corrections will be dated and linked. Corrections: hello@cybernative.ai.