Replacing deprecated Bitnami images
In August 2025 Bitnami moved its free versioned container images to
bitnamilegacy, which receives no further updates or security
fixes, and put maintained images behind Bitnami Secure Images. If you are still pulling
from docker.io/bitnami, you are running software that stopped
being patched.
Bitnami builds 380 images. Minimal has an equivalent for 56 of them, free, with no account and no paid tier — which leaves 320 with no replacement here. Both lists are below, generated from Bitnami's own repository rather than compiled by hand, and ordered by Docker Hub pull count so the ones people actually run come first.
Direct replacements
Same upstream software. Configuration and paths follow the upstream project's conventions rather than Bitnami's, so read the migration notes below before swapping.
| Bitnami image | Minimal replacement | Bitnami pulls |
|---|---|---|
| bitnami/kubectl | minimal-kubectl | 5,361,257,070 |
| bitnami/postgresql | minimal-postgres-slim | 3,765,440,722 |
| bitnami/redis | minimal-redis-slim | 3,343,290,874 |
| bitnami/external-dns | minimal-external-dns | 1,081,810,109 |
| bitnami/mariadb | minimal-mariadb | 837,247,055 |
| bitnami/rabbitmq | minimal-rabbitmq | 658,403,612 |
| bitnami/nginx | minimal-nginx | 438,098,185 |
| bitnami/zookeeper | minimal-zookeeper | 337,305,023 |
| bitnami/kafka | minimal-kafka | 331,194,930 |
| bitnami/mysql | minimal-mysql | 211,636,763 |
| bitnami/redis-exporter | minimal-redis-exporter | 170,349,048 |
| bitnami/metrics-server | minimal-metrics-server | 146,632,360 |
| bitnami/etcd | minimal-etcd | 139,730,720 |
| bitnami/memcached | minimal-memcached | 131,814,356 |
| bitnami/oauth2-proxy | minimal-oauth2-proxy | 97,283,418 |
| bitnami/node-exporter | minimal-node-exporter | 95,549,585 |
| bitnami/apache | minimal-httpd | 72,649,116 |
| bitnami/cassandra | minimal-cassandra | 70,247,637 |
| bitnami/kube-state-metrics | minimal-kube-state-metrics | 63,901,976 |
| bitnami/prometheus | minimal-prometheus | 60,191,607 |
| bitnami/minio | minimal-minio | 57,995,601 |
| bitnami/nats | minimal-nats | 48,020,203 |
| bitnami/alertmanager | minimal-alertmanager | 46,950,331 |
| bitnami/node | minimal-node-slim | 38,812,524 |
| bitnami/keycloak | minimal-keycloak | 32,134,751 |
| bitnami/thanos | minimal-thanos | 29,655,728 |
| bitnami/ruby | minimal-ruby | 28,316,652 |
| bitnami/envoy | minimal-envoy | 23,906,858 |
| bitnami/solr | minimal-solr | 23,706,471 |
| bitnami/pgbouncer | minimal-pgbouncer | 20,426,354 |
| bitnami/php-fpm | minimal-php | 13,901,261 |
| bitnami/consul | minimal-consul | 13,141,935 |
| bitnami/blackbox-exporter | minimal-blackbox-exporter | 11,640,721 |
| bitnami/tomcat | minimal-tomcat | 9,462,668 |
| bitnami/fluent-bit | minimal-fluent-bit | 9,192,380 |
| bitnami/jenkins | minimal-jenkins | 8,906,716 |
| bitnami/python | minimal-python | 6,052,435 |
| bitnami/rclone | minimal-rclone | 4,083,450 |
| bitnami/java | minimal-java | 2,827,900 |
| bitnami/oras | minimal-oras | 2,729,453 |
| bitnami/valkey | minimal-valkey | 2,480,100 |
| bitnami/cosign | minimal-cosign | 1,504,183 |
| bitnami/trivy | minimal-trivy | 1,321,260 |
| bitnami/pushgateway | minimal-pushgateway | 989,191 |
| bitnami/haproxy | minimal-haproxy | 966,903 |
| bitnami/kaniko | minimal-kaniko | 798,563 |
| bitnami/opensearch | minimal-opensearch | 656,762 |
| bitnami/dex | minimal-dex | 393,800 |
| bitnami/flink | minimal-flink | 308,685 |
| bitnami/gitea | minimal-gitea | 260,091 |
| bitnami/dotnet | minimal-dotnet | 213,344 |
| bitnami/jaeger | minimal-jaeger | 202,051 |
| bitnami/telegraf | minimal-telegraf | 197,320 |
| bitnami/seaweedfs | minimal-seaweedfs | 64,053 |
| bitnami/zipkin | minimal-zipkin | 17,262 |
| bitnami/notation | minimal-notation | 10,891 |
What Minimal does not cover
320 of Bitnami's 380 images have no Minimal equivalent. The most-pulled of them:
| Bitnami image | Pulls |
|---|---|
| bitnami/sealed-secrets-controller | 3,128,013,294 |
| bitnami/mongodb | 1,735,833,235 |
| bitnami/redis-cluster | 274,100,180 |
| bitnami/azure-cli | 207,821,746 |
| bitnami/redis-sentinel | 183,562,505 |
| bitnami/ghost | 131,033,616 |
| bitnami/elasticsearch | 117,128,276 |
| bitnami/wordpress | 109,674,154 |
| bitnami/phpmyadmin | 76,521,951 |
| bitnami/postgres-exporter | 74,088,428 |
| bitnami/mongodb-exporter | 73,504,497 |
| bitnami/grafana | 72,433,241 |
Two of these are deliberate rather than pending: mongodb (SSPL) and elasticsearch (Elastic License) are not open source, so they will not be added. opensearch is the closest available substitute for Elasticsearch. The rest are simply not built yet.
The three things that will break
A Bitnami image is not shaped like a Minimal one, so this is not a pure reference swap. Expect these:
Bitnami's /opt/bitnami paths do not exist
Bitnami standardises config, data and binaries under /opt/bitnami/<app>.
Minimal follows each project's own upstream layout instead. Any volume mount, config path or
command referencing /opt/bitnami needs rewriting.
Each image's Specifications tab lists its actual entrypoint and paths.
No shell, so Bitnami's entrypoint scripts do not port
Bitnami images ship a shell and a substantial libentrypoint.sh layer that
renders config from environment variables. Minimal production images have no shell at all, so
that pattern cannot be carried across — configure the software directly, or render config in an
init container.
Different non-root UID
Bitnami images conventionally run as UID 1001. Minimal uses
65532. Existing volumes written by a Bitnami container will be owned by
the wrong UID, so set fsGroup or chown the data before cutting over.
On a database volume, test this on a copy first.
A note on Helm charts
Most Bitnami usage is via Bitnami Helm charts, and those charts assume the Bitnami image
layout throughout — the paths, the entrypoint scripts and the UID above. Overriding
image.repository to point at a Minimal image will generally not work
on its own. Migrating the chart is a larger job than migrating the image, and this page does
not pretend otherwise.
Try one
docker pull ghcr.io/rtvkiz/minimal-postgres-slim:latest
grype ghcr.io/rtvkiz/minimal-postgres-slim:latest The general migration steps — tags, verification, rollout order — are in the migration guide, and apply whichever base you are coming from. Full catalog: 108 images.
This page is generated, not written. The image list comes from bitnami/containers (one directory per image Bitnami builds); pull counts and pullability come from the Docker Hub API. A row appears only when both sources agree — 4 images Bitnami builds have no pullable Docker Hub repository and are excluded. Generated 2026-09-01. Bitnami's catalog changes are documented by Broadcom in bitnami/containers #83267. Details there change; that issue, not this page, is the authority on what Bitnami currently publishes. Statements about Minimal are checkable from the verify page.