本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

pgautoupgrade 是一个基于官方 PostgreSQL 镜像(如 postgres:17-alpine)构建的 Docker 容器,核心功能是在启动时自动检测并升级数据库文件。该镜像支持从 PostgreSQL 9.5 及以上版本升级至目标版本,通过 pg_upgrade 工具的 --link 选项实现快速原地升级,并可自动启动数据库服务。主要用途是简化 PostgreSQL 版本升级流程,解决手动升级带来的复杂性和兼容性问题,适用于需要长期维护且需保持数据库版本最新的场景。
pg_upgrade --link 工具,实现原地升级以缩短升级时间。17-alpine)和 Debian(如 17-bookworm)两种基础镜像,支持指定目标 PostgreSQL 版本(如 17、16 等)。根据目标 PostgreSQL 版本及基础系统选择标签:
| 标签格式 | 说明 | 示例 | 
|---|---|---|
| latest | 最新 PostgreSQL 版本(Alpine 基础) | pgautoupgrade/pgautoupgrade:latest | 
| X-alpine | 指定版本(Alpine 基础) | pgautoupgrade/pgautoupgrade:17-alpine | 
| X-bookworm | 指定版本(Debian Bookworm 基础) | pgautoupgrade/pgautoupgrade:17-bookworm | 
docker run 启动docker run -d \ --name pgautoupgrade \ -v /path/to/local/data:/var/lib/postgresql/data \ # 挂载宿主机数据目录 -e POSTGRES_PASSWORD=your_secure_password \ # 数据库管理员密码(必填) -p 5432:5432 \ # 暴露数据库端口 pgautoupgrade/pgautoupgrade:17-alpine # 目标镜像(Alpine 基础)
version: '3' services: postgres: image: pgautoupgrade/pgautoupgrade:17-alpine container_name: pgautoupgrade volumes: - postgres_data:/var/lib/postgresql/data # 使用命名卷持久化数据 environment: - POSTGRES_PASSWORD=your_secure_password # 数据库管理员密码(必填) - POSTGRES_USER=postgres # 管理员用户名(默认:postgres) - POSTGRES_DB=postgres # 初始数据库名(默认:postgres) ports: - "5432:5432" # 端口映射 volumes: postgres_data: # 定义命名卷
添加环境变量 PGAUTO_ONESHOT=yes,容器仅执行升级操作,完成后自动退出,不启动数据库服务:
docker run -it \ --name pgauto-upgrade \ -v /path/to/local/data:/var/lib/postgresql/data \ -e POSTGRES_PASSWORD=your_secure_password \ -e PGAUTO_ONESHOT=yes \ pgautoupgrade/pgautoupgrade:17-alpine
默认升级后会重建所有数据库索引(耗时较长),可通过 PGAUTO_REINDEX=no 禁用:
docker run -d \ --name pgautoupgrade \ -v /path/to/local/data:/var/lib/postgresql/data \ -e POSTGRES_PASSWORD=your_secure_password \ -e PGAUTO_REINDEX=no \ pgautoupgrade/pgautoupgrade:17-alpine
postgres:16-bookworm):升级时需选择 Debian 目标镜像(如 17-bookworm),避免跨系统兼容性问题。17-alpine)。Debian 基础镜像部署示例:
docker run -d \ --name pgautoupgrade-debian \ -v /path/to/local/data:/var/lib/postgresql/data \ -e POSTGRES_PASSWORD=your_secure_password \ pgautoupgrade/pgautoupgrade:17-bookworm
| 环境变量名 | 说明 | 取值范围 | 默认值 | 
|---|---|---|---|
| POSTGRES_PASSWORD | 数据库管理员( postgres用户)密码,必填项 | 字符串 | 无 | 
| POSTGRES_USER | 数据库管理员用户名 | 字符串 | postgres | 
| POSTGRES_DB | 初始数据库名称 | 字符串 | postgres | 
| PGAUTO_ONESHOT | 是否启用“One shot”模式(仅升级,不启动数据库) | yes/no | no | 
| PGAUTO_REINDEX | 升级后是否重建所有数据库索引 | yes/no | yes | 
重要:本镜像通过 pg_upgrade --link 执行原地升级,若过程中发生错误可能导致数据损坏。升级前必须备份数据库数据目录,确保可恢复。
postgres:16-bookworm)升级时,需选择 Debian 目标镜像(如 17-bookworm),避免跨系统兼容性问题。17-alpine)。本镜像源码托管于 GitHub:[***]
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429