轩辕镜像
轩辕镜像专业版
个人中心搜索镜像
交易
充值流量我的订单
工具
工单支持镜像收录Run 助手IP 归属地密码生成Npm 源Pip 源
帮助
常见问题我要吐槽
其他
关于我们网站地图

官方QQ群: 13763429

轩辕镜像
镜像详情
livingdocs/postgres
官方博客使用教程热门镜像工单支持
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。
轩辕镜像 - 国内开发者首选的专业 Docker 镜像下载加速服务平台 - 官方QQ群:13763429 👈点击免费获得技术支持。
本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

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

postgres Docker 镜像下载 - 轩辕镜像

postgres 镜像详细信息和使用指南

postgres 镜像标签列表和版本信息

postgres 镜像拉取命令和加速下载

postgres 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

postgres
livingdocs/postgres
自动构建

postgres 镜像详细信息

postgres 镜像标签列表

postgres 镜像使用说明

postgres 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

生产就绪的PostgreSQL 17高可用镜像,集成wal-g和pg_auto_failover工具。
5 收藏0 次下载activelivingdocs镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

postgres 镜像详细说明

postgres 使用指南

postgres 配置说明

postgres 官方文档

Postgres 17.2 Docker镜像文档

镜像概述与主要用途

基于Debian构建的生产就绪型PostgreSQL 17.2 Docker镜像,专注于高可用性部署。集成wal-g和pg_auto_failover工具,提供WAL归档、备份及自动故障转移能力,简化流复制配置,适用于对数据库可靠性有高要求的生产环境。

核心功能与特性

  • 系统基础:基于Debian系统构建,确保兼容性与稳定性
  • 扩展支持:包含postgres-contrib扩展包,默认启用pg_stat_statements性能统计扩展
  • 高可用工具:
    • 集成wal-g,支持WAL(Write-Ahead Logging)归档与传输
    • 集成pg_auto_failover,实现自动故障转移
  • 运行安全:以postgres用户(uid 1000,gid 1000)运行,遵循最小权限原则
  • 启动优化:启动时不执行权限修复操作,加快容器初始化速度
  • 升级友好:无Dockerfile VOLUME声明,避免pg_upgrade --link命令使用冲突
  • 复制简化:提供便捷命令工具,简化流复制集群配置流程

使用场景与适用范围

  • 生产环境中的高可用性PostgreSQL部署
  • 需要WAL归档、备份及时间点恢复(PITR)的场景
  • 需自动故障转移能力的数据库集群架构
  • 简化流复制配置与管理的需求场景
  • 需从旧版本PostgreSQL平滑升级的迁移场景

使用方法与配置说明

基本部署:创建容器并命名

# 使用密码保护,默认情况下镜像已配置安全设置
docker run -d --name postgres -p 5432:5432 -v postgres:/var/lib/postgresql -e POSTGRES_PASSWORD=somepassword livingdocs/postgres:17.2

升级现有PostgreSQL容器

# 假设已创建旧版本容器(示例为14.5)
docker run -d --name postgres -p 5432:5432 -v postgres:/var/lib/postgresql livingdocs/postgres:14.5

# 首先停止旧容器,然后运行升级镜像
docker stop postgres
docker run --rm -v postgres:/var/lib/postgresql livingdocs/postgres:17.2-upgrade

# 升级成功后,使用新镜像启动并挂载现有卷
docker run -d --name postgres -p 5432:5432 -v postgres:/var/lib/postgresql livingdocs/postgres:17.2

手动构建镜像

常规构建

docker build -t livingdocs/postgres:17.2 .

使用buildx构建多架构镜像

# 构建并推送多架构镜像(amd64/arm64)至Docker Hub
docker buildx build --platform linux/amd64,linux/arm64 -t livingdocs/postgres:17.2 --push .

# 构建升级版本镜像
docker buildx build --platform linux/amd64,linux/arm64 -t livingdocs/postgres:17.2-upgrade --push -f Dockerfile.upgrade .

使用nerdctl在lima/containerd环境构建

# 构建多架构镜像
nerdctl build --platform=amd64,arm64 -t livingdocs/postgres:17.2 .
nerdctl build --platform=amd64,arm64 -t livingdocs/postgres:17.2-upgrade -f Dockerfile.upgrade .

# 推送所有架构镜像
lima nerdctl push --all-platforms livingdocs/postgres:17.2
lima nerdctl push --all-platforms livingdocs/postgres:17.2-upgrade

配置流复制

简单配置

# 创建主从容器
docker run -d -p 5433:5432 --name postgres-1 livingdocs/postgres:17.2
docker run -d -p 5434:5432 --name postgres-2 livingdocs/postgres:17.2 standby -d "host=host.docker.internal port=5433 user=postgres target_session_attrs=read-write"

# 测试复制功能
docker exec postgres-1 psql -c "CREATE TABLE hello (value text); INSERT INTO hello(value) VALUES('world');"
docker exec postgres-2 psql -c "SELECT * FROM hello;"
# 输出:
#   value
#  -------
#  world
#  (1 row)

高级配置(使用密码认证)

# 创建Docker网络模拟生产环境DNS解析
docker network create local

# 启动主库容器
docker run -d -p 5433:5432 --name postgres-1 --network=local --network-alias=postgres -e POSTGRES_HOST_AUTH_METHOD=md5 livingdocs/postgres:17.2

# 初始化数据库用户(也可在集群启动时挂载SQL脚本至/var/lib/postgresql/initdb.d自动执行)
docker exec postgres-1 psql -c "ALTER ROLE postgres ENCRYPTED PASSWORD 'some-postgres-password';"
docker exec postgres-1 psql -c "CREATE USER replication REPLICATION LOGIN ENCRYPTED PASSWORD 'some-replication-password';"

# 启动副本容器
export DB_URL="host=postgres port=5432 user=replication password=some-replication-password target_session_attrs=read-write"
docker run -d -p 5434:5432 --name postgres-2 --network=local --network-alias=postgres livingdocs/postgres:17.2 standby -d $DB_URL
docker run -d -p 5435:5432 --name postgres-3 --network=local --network-alias=postgres livingdocs/postgres:17.2 standby -d $DB_URL

# 测试复制功能
docker exec postgres-1 psql -c "CREATE TABLE hello (value text); INSERT INTO hello(value) VALUES('hello');"
docker exec postgres-2 psql -c "SELECT * FROM hello;"
docker exec postgres-3 psql -c "SELECT * FROM hello;"
# 两个副本输出均为:
#  value
# -------
# hello
# (1 row)


#
# 测试手动提升副本为主库
#
docker rm -f postgres-1

# 此时向副本插入数据会失败:ERROR:  cannot execute INSERT in a read-only transaction
docker exec postgres-2 psql -c "INSERT INTO hello(value) VALUES('world');"

# 提升副本
docker exec postgres-2 touch /var/lib/postgresql/data/promote.signal

# 验证提升结果
docker exec postgres-2 psql -c "INSERT INTO hello(value) VALUES('world');"
docker exec postgres-3 psql -c "SELECT * FROM hello;"
# 输出均为:
#  value
# -------
#  hello
#  world
# (2 rows)

提升副本为主库

注意:提升前需确保旧主库已停止接受写入,可通过停止容器或执行以下SQL命令实现:

ALTER SYSTEM SET default_transaction_read_only TO 'on';
SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pid <> pg_backend_pid();

提升副本有两种方式:

  1. 在副本容器的数据目录创建promote.signal文件:

    touch /var/lib/postgresql/data/promote.signal
    

    若修改过配置,需确保promote_trigger_file参数指向该路径

  2. 在容器内执行pg_ctl promote命令:

    gosu postgres pg_ctl promote
    

配置参数与环境变量

环境变量说明默认值
POSTGRES_PASSWORDpostgres超级用户密码无(必填)
POSTGRES_HOST_AUTH_METHOD主机认证方式(如md5、trust等)未指定
查看更多 postgres 相关镜像 →
postgres logo
postgres
by library
官方
PostgreSQL作为一款功能强大的对象关系型数据库系统,凭借其先进的架构设计与完善的技术机制,不仅能高效融合关系型数据的结构化管理与对象型数据的灵活扩展,更通过严格的ACID事务支持、多版本并发控制及全面的数据校验机制,为各类应用场景提供卓越的系统可靠性与极致的数据完整性保障,是全球广泛应用的开源数据库优选方案。
146061B+ pulls
上次更新:1 天前
cimg/postgres logo
cimg/postgres
by CircleCI
认证
CircleCI便捷镜像,集成PostgreSQL数据库,用于CI/CD流程中快速部署和运行PostgreSQL相关的测试及开发任务,简化配置。
5100M+ pulls
上次更新:24 天前
elestio/postgres logo
elestio/postgres
by Elestio
认证
Postgres, verified and packaged by Elestio
1100K+ pulls
上次更新:3 天前
kasmweb/postgres logo
kasmweb/postgres
by Kasm Technologies
认证
Kasm Technologies维护的Postgres镜像,包含pg_audit及其他修改。
5100K+ pulls
上次更新:11 小时前
ubuntu/postgres logo
ubuntu/postgres
by Canonical
认证
PostgreSQL是一款开源的对象关系型数据库,它功能强大、稳定性高,广泛应用于各类企业级应用和数据管理场景,支持复杂查询、事务处理及高级数据类型,其长期版本由Canonical负责维护,为用户提供持续的技术支持与更新服务,确保数据库系统在长期使用中的可靠性与安全性,是全球众多开发者和企业信赖的主流数据库解决方案之一。
42500K+ pulls
上次更新:1 个月前

常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 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 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

轩辕镜像下载加速使用手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

🔐

登录方式进行 Docker 镜像下载加速教程

通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤

🐧

Linux Docker 镜像下载加速教程

在 Linux 系统上配置轩辕镜像源,支持主流发行版

🖥️

Windows/Mac Docker 镜像下载加速教程

在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统

📦

Docker Compose 镜像下载加速教程

在 Docker Compose 中使用轩辕镜像加速,支持容器编排

📋

K8s containerd 镜像下载加速教程

在 k8s 中配置 containerd 使用轩辕镜像加速

🔧

宝塔面板 Docker 镜像下载加速教程

在宝塔面板中配置轩辕镜像加速,提升服务器管理效率

💾

群晖 NAS Docker 镜像下载加速教程

在 Synology 群晖NAS系统中配置轩辕镜像加速

🐂

飞牛fnOS Docker 镜像下载加速教程

在飞牛fnOS系统中配置轩辕镜像加速

📱

极空间 NAS Docker 镜像下载加速教程

在极空间NAS中配置轩辕镜像加速

⚡

爱快路由 ikuai Docker 镜像下载加速教程

在爱快ikuai系统中配置轩辕镜像加速

🔗

绿联 NAS Docker 镜像下载加速教程

在绿联NAS系统中配置轩辕镜像加速

🌐

威联通 NAS Docker 镜像下载加速教程

在威联通NAS系统中配置轩辕镜像加速

📦

Podman Docker 镜像下载加速教程

在 Podman 中配置轩辕镜像加速,支持多系统

📚

ghcr、Quay、nvcr、k8s、gcr 等仓库下载镜像加速教程

配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤

🚀

专属域名方式进行 Docker 镜像下载加速教程

无需登录即可使用轩辕镜像加速服务,更加便捷高效

需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429

商务:17300950906
|©2024-2025 源码跳动
商务合作电话:17300950906|Copyright © 2024-2025 杭州源码跳动科技有限公司. All rights reserved.