Replacing deprecated Bitnami images
In August 2025 Bitnami moved its free versioned container images tobitnamilegacy, 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 379 images. Minimal has an equivalent for64 of them, free, with no account and no paid tier — which leaves307 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,384,785,956 |
| bitnami/postgresql | minimal-postgres-slim | 3,767,130,578 |
| bitnami/redis | minimal-redis-slim | 3,345,726,917 |
| bitnami/external-dns | minimal-external-dns | 1,081,812,852 |
| bitnami/mariadb | minimal-mariadb | 837,717,069 |
| bitnami/rabbitmq | minimal-rabbitmq | 658,491,113 |
| bitnami/nginx | minimal-nginx | 439,074,646 |
| bitnami/zookeeper | minimal-zookeeper | 337,352,713 |
| bitnami/kafka | minimal-kafka | 331,311,734 |
| bitnami/mysql | minimal-mysql | 211,661,345 |
| bitnami/redis-exporter | minimal-redis-exporter | 170,988,715 |
| bitnami/metrics-server | minimal-metrics-server | 146,634,101 |
| bitnami/etcd | minimal-etcd | 139,745,434 |
| bitnami/memcached | minimal-memcached | 131,948,122 |
| bitnami/wordpress | minimal-wordpress | 110,138,650 |
| bitnami/oauth2-proxy | minimal-oauth2-proxy | 97,321,987 |
| bitnami/node-exporter | minimal-node-exporter | 95,553,577 |
| bitnami/postgres-exporter | minimal-postgres-exporter | 74,236,027 |
| bitnami/apache | minimal-httpd | 72,685,743 |
| bitnami/cassandra | minimal-cassandra | 70,251,343 |
| bitnami/kube-state-metrics | minimal-kube-state-metrics | 63,905,203 |
| bitnami/prometheus | minimal-prometheus | 60,213,621 |
| bitnami/nats | minimal-nats | 48,022,153 |
| bitnami/alertmanager | minimal-alertmanager | 46,953,618 |
| bitnami/node | minimal-node-slim | 38,913,569 |
| bitnami/keycloak | minimal-keycloak | 32,153,737 |
| bitnami/thanos | minimal-thanos | 29,660,486 |
| bitnami/ruby | minimal-ruby | 28,399,388 |
| bitnami/envoy | minimal-envoy | 23,909,841 |
| bitnami/solr | minimal-solr | 23,711,801 |
| bitnami/pgbouncer | minimal-pgbouncer | 20,465,339 |
| bitnami/php-fpm | minimal-php | 14,017,774 |
| bitnami/neo4j | minimal-neo4j | 13,902,532 |
| bitnami/consul | minimal-consul | 13,143,584 |
| bitnami/blackbox-exporter | minimal-blackbox-exporter | 11,642,452 |
| bitnami/airflow | minimal-airflow | 10,465,984 |
| bitnami/tomcat | minimal-tomcat | 9,566,390 |
| bitnami/fluent-bit | minimal-fluent-bit | 9,195,456 |
| bitnami/jenkins | minimal-jenkins | 8,912,579 |
| bitnami/python | minimal-python | 6,183,446 |
| bitnami/rclone | minimal-rclone | 4,083,485 |
| bitnami/valkey | minimal-valkey | 2,909,212 |
| bitnami/java | minimal-java | 2,901,681 |
| bitnami/oras | minimal-oras | 2,729,462 |
| bitnami/kong | minimal-kong | 1,888,814 |
| bitnami/cosign | minimal-cosign | 1,598,776 |
| bitnami/argo-cd | minimal-argo-cd | 1,574,815 |
| bitnami/trivy | minimal-trivy | 1,324,007 |
| bitnami/pushgateway | minimal-pushgateway | 990,884 |
| bitnami/couchdb | minimal-couchdb | 982,005 |
| bitnami/haproxy | minimal-haproxy | 977,645 |
| bitnami/kaniko | minimal-kaniko | 798,679 |
| bitnami/opensearch | minimal-opensearch | 657,181 |
| bitnami/dex | minimal-dex | 393,808 |
| bitnami/flink | minimal-flink | 308,690 |
| bitnami/gitlab-runner | minimal-gitlab-runner | 295,505 |
| bitnami/gitea | minimal-gitea | 260,212 |
| bitnami/dotnet | minimal-dotnet | 213,348 |
| bitnami/jaeger | minimal-jaeger | 203,444 |
| bitnami/telegraf | minimal-telegraf | 197,410 |
| bitnami/seaweedfs | minimal-seaweedfs | 64,771 |
| bitnami/zipkin | minimal-zipkin | 17,268 |
| bitnami/notation | minimal-notation | 10,894 |
| bitnami/kyverno | minimal-kyverno | 107 |
What Minimal does not cover
307 of Bitnami's 379 images have no Minimal equivalent. The most-pulled of them:
| Bitnami image | Pulls |
|---|---|
| bitnami/sealed-secrets-controller | 3,130,168,422 |
| bitnami/mongodb | 1,736,704,190 |
| bitnami/redis-cluster | 274,123,140 |
| bitnami/azure-cli | 207,822,977 |
| bitnami/redis-sentinel | 183,810,983 |
| bitnami/ghost | 131,034,029 |
| bitnami/elasticsearch | 117,133,945 |
| bitnami/phpmyadmin | 76,545,610 |
| bitnami/mongodb-exporter | 73,543,627 |
| bitnami/grafana | 72,437,240 |
| bitnami/postgresql-repmgr | 65,494,069 |
| bitnami/fluentd | 62,405,241 |
Two of these are deliberate rather than pending: mongodb (SSPL) andelasticsearch (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 orcommand 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 uses65532. 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. Overridingimage.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:latestThe general migration steps — tags, verification, rollout order — are inthe migration guide, and apply whichever base you are coming from. Full catalog: 150 images.
This page is generated, not written. The image list comes frombitnami/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 — 8 images Bitnami builds have no pullable Docker Hub repository and are excluded. Generated2026-10-26. Bitnami's catalog changes are documented by Broadcom inbitnami/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.