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

官方QQ群: 13763429

轩辕镜像
镜像详情
library/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
library/postgres

postgres 镜像详细信息

postgres 镜像标签列表

postgres 镜像使用说明

postgres 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

PostgreSQL作为一款功能强大的对象关系型数据库系统,凭借其先进的架构设计与完善的技术机制,不仅能高效融合关系型数据的结构化管理与对象型数据的灵活扩展,更通过严格的ACID事务支持、多版本并发控制及全面的数据校验机制,为各类应用场景提供卓越的系统可靠性与极致的数据完整性保障,是全球广泛应用的开源数据库优选方案。
14607 收藏0 次下载activelibrary镜像
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源
中文简介版本下载
🚀轩辕镜像专业版更稳定💎一键安装 Docker 配置镜像源

postgres 镜像详细说明

postgres 使用指南

postgres 配置说明

postgres 官方文档

PostgreSQL Docker 镜像使用指南

说明

本镜像描述因超出 Docker Hub 25000 字符限制已被截断,完整内容可查看 GitHub 文档。相关背景可参考 docker/hub-feedback#238 和 docker/roadmap#475。

快速参考

维护方

PostgreSQL Docker 社区

帮助支持

可通过 Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow 获取帮助。

支持的标签及对应 Dockerfile 链接

  • 18.x 版本
    18.0, 18, latest, 18.0-trixie, 18-trixie, trixie
    18.0-bookworm, 18-bookworm, bookworm
    18.0-alpine3.22, 18-alpine3.22, alpine3.22, 18.0-alpine, 18-alpine, alpine
    18.0-alpine3.21, 18-alpine3.21, alpine3.21

  • 17.x 版本
    17.6, 17, 17.6-trixie, 17-trixie
    17.6-bookworm, 17-bookworm
    17.6-alpine3.22, 17-alpine3.22, 17.6-alpine, 17-alpine
    17.6-alpine3.21, 17-alpine3.21

  • 16.x 版本
    16.10, 16, 16.10-trixie, 16-trixie
    16.10-bookworm, 16-bookworm
    16.10-alpine3.22, 16-alpine3.22, 16.10-alpine, 16-alpine
    16.10-alpine3.21, 16-alpine3.21

  • 15.x 及以下版本
    完整标签列表见 GitHub 文档。

快速参考(续)

  • 问题反馈:GitHub Issues
  • 支持架构:amd64、arm32v5、arm32v6、arm32v7、arm64v8、i386、mips64le、ppc64le、riscv64、s390x(详情)
  • 镜像信息:repo-info 仓库(含元数据、传输大小等)
  • 镜像更新:official-images 仓库标签 及 配置文件
  • 文档来源:docs 仓库

什么是 PostgreSQL?

PostgreSQL(常简称“Postgres”)是一款强调可扩展性和标准兼容性的对象关系型数据库管理系统(ORDBMS)。作为数据库服务器,其核心功能是安全存储数据并支持最佳实践,同时支持本地或网络(含互联网)中的应用程序按需检索数据。它可处理从小型单机应用到高并发互联网应用的各类负载,最新版本还支持数据库复制以提升安全性和可扩展性。

PostgreSQL 实现了 SQL:2011 标准的大部分功能,支持 ACID 事务(含多数 DDL 语句),通过多版本并发控制(MVCC)避免锁竞争,提供防脏读和完全可序列化能力。它支持复杂 SQL 查询、多种索引类型、可更新视图、物化视图、触发器、外键,以及函数和存储过程,并拥有丰富的第三方扩展。此外,PostgreSQL 支持从其他数据库迁移,通过标准 SQL 兼容和迁移工具,甚至可通过内置或第三方扩展模拟专有数据库的特性(如 Oracle)。

更多信息:***

!PostgreSQL 标志

如何使用本镜像

启动 PostgreSQL 实例

$ docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres

入口脚本会通过 initdb 创建默认用户(postgres)和数据库。

说明:postgres 数据库是默认数据库,供用户、工具和第三方应用使用(PostgreSQL 文档)。

通过 psql 连接

$ docker run -it --rm --network some-network postgres psql -h some-postgres -U postgres
psql (14.3)
Type "help" for help.

postgres=# SELECT 1;
 ?column? 
----------
        1
(1 row)

通过 docker compose 部署

compose.yaml 示例:

# 使用 postgres/example 作为用户/密码凭证
services:
  db:
    image: postgres
    restart: always
    shm_size: 128mb  # 设置共享内存限制(docker compose 方式)
    # 若通过 swarm stack 部署,可改用 tmpfs 挂载:
    # volumes:
    #   - type: tmpfs
    #     target: /dev/shm
    #     tmpfs:
    #       size: 134217728  # 128MB
    environment:
      POSTGRES_PASSWORD: example

  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080

执行 docker compose up,待初始化完成后访问 [***] 或 [***] 如何扩展本镜像

环境变量

PostgreSQL 镜像依赖多个环境变量,其中 POSTGRES_PASSWORD 为必填项,其他为可选。
注意:仅当容器数据目录为空时,以下变量才生效;若目录中已有数据库,启动时将忽略这些变量。

POSTGRES_PASSWORD

必填,用于设置 PostgreSQL 超级用户密码。默认超级用户由 POSTGRES_USER 定义。

  • 注意1:镜像默认对本地连接启用 trust 认证,因此容器内通过 localhost 连接无需密码,但跨容器/主机连接仍需密码。
  • 注意2:此变量仅在初始化时设置超级用户密码,与运行时 psql 客户端使用的 PGPASSWORD 环境变量无关(详情)。

POSTGRES_USER

可选,与 POSTGRES_PASSWORD 配合创建超级用户及同名数据库。若未指定,默认用户为 postgres。

初始化时可能显示“数据库文件属主为 user 'postgres'”,此处指 Linux 系统用户(镜像内 /etc/passwd 定义),与 POSTGRES_USER 无关。

POSTGRES_DB

可选,指定初始化时创建的默认数据库名称。若未指定,默认使用 POSTGRES_USER 的值。

POSTGRES_INITDB_ARGS

可选,传递参数给 initdb。例如启用数据页校验和:

-e POSTGRES_INITDB_ARGS="--data-checksums"

POSTGRES_INITDB_WALDIR

可选,指定事务日志(WAL)存储路径(默认位于 PGDATA 子目录)。PostgreSQL 9.x 中变量名为 POSTGRES_INITDB_XLOGDIR(因 10+ 版本将 --xlogdir 重命名为 --waldir)。

POSTGRES_HOST_AUTH_METHOD

可选,控制 host 类型连接的认证方式(适用于所有数据库、用户和地址)。默认值:14+ 版本为 scram-sha-256,旧版本为 md5。初始化时会向 pg_hba.conf 添加如下行:

echo "host all all all $POSTGRES_HOST_AUTH_METHOD" >> pg_hba.conf
  • 注意1:不建议使用 trust(无需密码即可连接)。
  • 注意2:若设为 trust,则 POSTGRES_PASSWORD 非必填。
  • 注意3:若使用其他值(如 scram-sha-256),可能需配合 POSTGRES_INITDB_ARGS=--auth-host=scram-sha-256。

PGDATA

重要变更:PostgreSQL 18+ 版本中,PGDATA 默认路径改为 /var/lib/postgresql/18/docker(后续版本将 18 替换为对应主版本号),且镜像定义的 VOLUME 为 /var/lib/postgresql。建议将数据卷挂载到 /var/lib/postgresql。
旧版本用户可手动指定 PGDATA 以适配新路径(如 --env PGDATA=/var/lib/postgresql/17/docker),并迁移数据至 PG_MAJOR/docker 子目录。
注意:17 及以下版本需挂载 /var/lib/postgresql/data(而非 /var/lib/postgresql),否则数据不会持久化(因镜像默认在 /var/lib/postgresql/data 声明匿名卷)。

Docker Secrets

通过环境变量后缀 _FILE 从文件加载敏感信息(如 Docker Secrets)。例如从 /run/secrets/postgres-passwd 读取密码:

docker run --name some-postgres -e POSTGRES_PASSWORD_FILE=/run/secrets/postgres-passwd -d postgres

目前支持 POSTGRES_INITDB_ARGS、POSTGRES_PASSWORD、POSTGRES_USER、POSTGRES_DB。

初始化脚本

在 /docker-entrypoint-initdb.d 目录下添加 *.sql、*.sql.gz 或 *.sh 脚本,可在数据库初始化后自动执行(仅当数据目录为空时)。

示例:创建用户和数据库的 init-user-db.sh 脚本:

#!/usr/bin/env bash
set -e

psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
    CREATE USER docker;
    CREATE DATABASE docker;
    GRANT ALL PRIVILEGES ON DATABASE docker TO docker;
EOSQL

脚本按文件名排序执行(默认 locale 为 en_US.utf8),*.sql 文件由 POSTGRES_USER 执行,*.sh 脚本建议通过 --username "$POSTGRES_USER" 指定用户。

数据库配置

方法1:自定义配置文件

  1. 获取默认配置:
    docker run -i --rm postgres cat /usr/share/postgresql/postgresql.conf.sample > my-postgres.conf
    
  2. 修改配置(需设置 listen_addresses = '*' 允许跨容器连接)。
  3. 启动容器:
    docker run -d --name some-postgres -v "$PWD/my-postgres.conf":/etc/postgresql/postgresql.conf -e POSTGRES_PASSWORD=mysecretpassword postgres -c 'config_file=/etc/postgresql/postgresql.conf'
    

方法2:运行时指定参数

通过 docker run 命令直接传递参数(支持所有 .conf 文件中的配置项,格式 -c key=value):

docker run -d --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword postgres -c shared_buffers=256MB -c max_connections=200

本地化配置

Debian 基础镜像

通过 Dockerfile 扩展以设置 locale(如 de_DE.utf8):

FROM postgres:14.3
RUN localedef -i de_DE -c -f UTF-8 -A /usr/share/locale/locale.alias de_DE.UTF-8
ENV LANG de_DE.utf8

Alpine 基础镜像

PostgreSQL 15+ 的 Alpine 版本支持 ICU 本地化(旧版本不支持)。通过 POSTGRES_INITDB_ARGS 设置:

docker run -d -e LANG=de_DE.utf8 -e POSTGRES_INITDB_ARGS="--locale-provider=icu --icu-locale=de-DE" -e POSTGRES_PASSWORD=mysecretpassword postgres:15-alpine 

扩展插件

  • Debian 镜像:直接安装包(如 PostGIS),参考 postgis/docker-postgis。
  • Alpine 镜像:非 postgres-contrib 插件需手动编译,参考 postgis/docker-postgis。

任意 --user 说明

镜像支持通过 docker run --user 以非默认用户启动(#253、[#1018]([***]

查看更多 postgres 相关镜像 →
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
上次更新:4 小时前
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.