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

官方QQ群: 13763429

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

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

postgresql-96-centos7 Docker 镜像下载 - 轩辕镜像

postgresql-96-centos7 镜像详细信息和使用指南

postgresql-96-centos7 镜像标签列表和版本信息

postgresql-96-centos7 镜像拉取命令和加速下载

postgresql-96-centos7 镜像使用说明和配置指南

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

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

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

postgresql-96-centos7
centos/postgresql-96-centos7

postgresql-96-centos7 镜像详细信息

postgresql-96-centos7 镜像标签列表

postgresql-96-centos7 镜像使用说明

postgresql-96-centos7 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

容器化的PostgreSQL 9.6 SQL数据库服务器,支持OpenShift和通用部署,提供RHEL、CentOS和Fedora基础镜像,包含数据库服务端和客户端,支持数据持久化、迁移、自动调优及版本升级。
45 收藏0 次下载activecentos镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

postgresql-96-centos7 镜像详细说明

postgresql-96-centos7 使用指南

postgresql-96-centos7 配置说明

postgresql-96-centos7 官方文档

PostgreSQL 9.6 SQL数据库服务器容器镜像

该容器镜像包含PostgreSQL 9.6 SQL数据库服务器,适用于OpenShift和通用场景。用户可选择基于RHEL、CentOS或Fedora的镜像:RHEL镜像可在Red Hat容器目录获取,CentOS镜像在Docker Hub,Fedora镜像在Fedora Registry。生成的镜像可使用podman运行。

注意:本文档中的示例使用podman命令,所有此类命令均可替换为docker,参数保持不变。

概述

本容器镜像提供PostgreSQL数据库服务端(postgres daemon)和客户端应用的容器化打包。PostgreSQL服务端接受客户端连接,并代表客户端提供对PostgreSQL数据库内容的访问。更多关于PostgreSQL项目的信息,请访问官方网站。

使用方法

以下示例基于rhscl/postgresql-96-rhel7镜像(在OpenShift中可通过postgresql:9.6镜像流标签获取)。

基本运行(无持久化)

若只需设置必填环境变量且不将数据库存储在主机目录,执行以下命令:

$ podman run -d --name postgresql_database -e POSTGRESQL_USER=user -e POSTGRESQL_PASSWORD=pass -e POSTGRESQL_DATABASE=db -p 5432:5432 rhscl/postgresql-96-rhel7

此命令将创建名为postgresql_database的容器,运行PostgreSQL数据库,其中包含数据库db和用户user(密码pass)。> 注意:postgres用户为内部保留用户,不可用于常规访问。

容器会暴露5432端口并映射到主机。若需数据库在容器重启后持久化,需添加-v /host/db/path:/var/lib/pgsql/data参数(见下文),该目录为PostgreSQL数据库集群目录。

在OpenShift中使用

可使用OpenShift提供的模板或示例模板部署:

$ oc process -f examples/postgresql-ephemeral-template.json -p POSTGRESQL_VERSION=9.6 -p POSTGRESQL_USER=user -p POSTGRESQL_PASSWORD=pass -p POSTGRESQL_DATABASE=db | oc create -f -

初始化与启动流程

若数据库集群目录未初始化,入口脚本会先运行initdb并设置必要的数据库用户和密码。初始化完成(或目录已存在)后,将执行postgres并以PID 1运行。可通过podman stop postgresql_database停止后台运行的容器。

环境变量和卷

环境变量

可通过-e VAR=VALUE参数设置以下环境变量:

必选环境变量

  • POSTGRESQL_USER:要创建的PostgreSQL用户名
  • POSTGRESQL_PASSWORD:用户账户密码
  • POSTGRESQL_DATABASE:数据库名称
  • POSTGRESQL_ADMIN_PASSWORD(可选):postgres管理员账户密码

迁移相关环境变量

  • POSTGRESQL_MIGRATION_REMOTE_HOST:迁移源主机名/IP
  • POSTGRESQL_MIGRATION_ADMIN_PASSWORD:远程postgres管理员密码
  • POSTGRESQL_MIGRATION_IGNORE_ERRORS(可选,默认no):设为yes可忽略SQL导入错误

PostgreSQL配置环境变量(可选)

  • POSTGRESQL_MAX_CONNECTIONS(默认:100):允许的最大客户端连接数
  • POSTGRESQL_MAX_PREPARED_TRANSACTIONS(默认:0):最大预备事务数,使用预备事务时建议至少与max_connections相同
  • POSTGRESQL_SHARED_BUFFERS(默认:32M):PostgreSQL用于缓存数据的内存大小
  • POSTGRESQL_EFFECTIVE_CACHE_SIZE(默认:128M):操作系统和数据库可用于磁盘缓存的内存估计值

卷挂载点

可通过-v /host/dir:/container/dir:Z挂载以下目录:

  • /var/lib/pgsql/data:PostgreSQL数据库集群目录

注意:从主机挂载目录到容器时,需确保挂载目录具有适当权限,且目录的所有者和组与容器内运行的用户UID或名称匹配。
通常(除非使用podman run -u指定用户),容器内进程以UID 26运行。在GNU/Linux上,可通过以下命令修复数据目录权限:

$ setfacl -m u:26:-wx /your/data/dir
$ podman run <...> -v /your/data/dir:/var/lib/pgsql/data:Z <...>

数据迁移

PostgreSQL容器支持从远程PostgreSQL服务器迁移数据,命令如下:

$ podman run -d --name postgresql_database \
    -e POSTGRESQL_MIGRATION_REMOTE_HOST=172.17.0.2 \
    -e POSTGRESQL_MIGRATION_ADMIN_PASSWORD=remoteAdminP@ssword \
    [ 可选配置变量 ]
    openshift/postgresql-92-centos7

迁移通过备份与恢复方式实现(对远程集群运行pg_dumpall并通过psql本地导入)。由于过程是流式(Unix管道)的,不会创建中间备份文件,以节省存储空间。

迁移错误处理

默认情况下,若迁移过程中SQL命令失败,迁移脚本会终止以确保全有或全无的迁移结果。这适用于从使用相同原理创建的旧版本PostgreSQL容器(如从openshift/postgresql-92-centos7迁移到centos/postgresql-95-centos7)。从其他类型的PostgreSQL容器迁移可能失败。

若需忽略错误并执行尽力迁移(可能丢失数据,需用户手动检查和修复),可设置POSTGRESQL_MIGRATION_IGNORE_ERRORS=yes。

注意事项

  • 容器镜像仅为方便提供迁移帮助,不保证完全自动迁移成功。迁移前请做好手动干预准备。
  • 迁移场景中无需设置POSTGRESQL_USER等变量,所有数据(包括数据库、角色、密码)均从旧集群复制。
  • 需确保新容器使用与旧容器相同的可选配置变量。若远程集群有非默认配置,可能需手动复制配置文件。
  • 安全警告:默认情况下,新旧集群间的IP通信未加密,需用户配置SSL或通过其他方式确保安全。

PostgreSQL自动调优

当运行PostgreSQL镜像时指定--memory参数,且未设置POSTGRESQL_SHARED_BUFFERS和POSTGRESQL_EFFECTIVE_CACHE_SIZE,这两个值将根据--memory参数自动计算:

  • shared_buffers:设为内存的1/4
  • effective_cache_size:设为内存的1/2

计算依据上游建议。

PostgreSQL管理员账户

默认情况下,postgres管理员账户无密码,仅允许本地连接。可通过设置POSTGRESQL_ADMIN_PASSWORD环境变量为其设置密码,允许远程登录。本地连接仍无需密码。

修改密码

密码是镜像配置的一部分,修改数据库用户(POSTGRESQL_USER)和postgres管理员密码的唯一支持方式是修改对应的环境变量(POSTGRESQL_PASSWORD和POSTGRESQL_ADMIN_PASSWORD)。容器每次启动时,会将密码重置为环境变量中存储的值。通过SQL语句或其他方式修改密码会导致环境变量值与实际密码不匹配,容器重启后将被覆盖。

数据库升级(切换到新版本PostgreSQL镜像)

警告:升级数据目录前,请务必备份所有数据,并做好手动回滚准备!

本镜像支持自动升级由sclorg镜像提供的PostgreSQL 9.5版本(仅此版本)的数据目录。升级过程通过设置POSTGRESQL_UPGRADE变量显式触发,内部使用pg_upgrade工具实现(需容器包含两个版本的PostgreSQL服务器,详见man pg_upgrade)。

升级方式

pg_upgrade需初始化新数据目录(通常位于/var/lib/pgsql/data,外部挂载点),通过启动新旧服务器并“备份-恢复”数据实现。根据数据文件处理方式,POSTGRESQL_UPGRADE支持以下值:

  • copy:数据文件从旧目录复制到新目录。升级失败时数据丢失风险低。
  • hardlink:数据文件从旧目录硬链接到新目录,性能更优,但升级失败后旧目录将不可用。

注意事项

  • 升级需足够磁盘空间存储复制的数据,空间不足可能导致数据丢失。
  • 升级前确保备份数据,升级过程可能需要大量文件复制。

扩展镜像

可在OpenShift中使用Source构建策略或独立的source-to-image(s2i)工具扩展本镜像。以下示例基于rhscl/postgresql-96-rhel7镜像(OpenShift中通过postgresql:9.6镜像流标签获取)。

构建扩展镜像

OpenShift中构建

$ oc new-app postgresql:9.6~[***] \
  --name new-postgresql \
  --context-dir examples/extending-image/ \
  -e POSTGRESQL_USER=user \
  -e POSTGRESQL_DATABASE=db \
  -e POSTGRESQL_PASSWORD=password

独立s2i构建

$ s2i build --context-dir examples/extending-image/ [***] rhscl/postgresql-96-rhel7 new-postgresql

自定义目录

扩展时可提供以下目录,文件将复制到新镜像的/opt/app-root/src目录,用户文件优先于/usr/share/container-scripts/中的默认文件:

  • postgresql-pre-start/:容器启动初期执行所有*.sh脚本(PostgreSQL未运行)。
  • postgresql-cfg/:包含的*.conf文件将追加到postgresql.conf末尾。
  • postgresql-init/:数据库首次初始化后(initdb成功且数据目录非空)执行所有*.sh脚本(本地PostgreSQL已运行)。持久化数据目录重新部署时不执行。
  • postgresql-start/:每次容器启动时执行所有*.sh脚本(在postgresql-init/之后,若存在)。

故障排除

PostgreSQL服务日志默认输出到标准输出,可通过以下命令查看容器日志:

podman logs <容器名>

之后日志会重定向到日志收集进程,存储在pg_log目录。

另请参阅

本容器镜像的Dockerfile及源码位于[***]

  • CentOS的Dockerfile名为Dockerfile
  • RHEL7的Dockerfile名为Dockerfile.rhel7
  • RHEL8的Dockerfile名为Dockerfile.rhel8
  • Fedora的Dockerfile名为Dockerfile.fedora
查看更多 postgresql-96-centos7 相关镜像 →

常见问题

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

免费版仅支持 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.