注意: 此镜像的描述超出了 Hub 的 25000 字符限制,因此已被截断。完整描述可在 [***] 查看。另请参见 docker/hub-feedback#238 和 docker/roadmap#475。
注意: 这是 postgres 镜像 的 riscv64 架构构建的“每架构”仓库——更多信息,请参见镜像文档中的“除 amd64 之外的架构?”和***镜像 FAQ 中的“Git 中镜像的源已更改,现在该怎么办?”。
维护者:
PostgreSQL Docker 社区
获取帮助:
Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow
Dockerfile 链接18.0, 18, latest, 18.0-trixie, 18-trixie, trixie
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.6, 17, 17.6-trixie, 17-trixie
17.6-alpine3.22, 17-alpine3.22, 17.6-alpine, 17-alpine
17.6-alpine3.21, 17-alpine3.21
16.10, 16, 16.10-trixie, 16-trixie
16.10-alpine3.22, 16-alpine3.22, 16.10-alpine, 16-alpine
16.10-alpine3.21, 16-alpine3.21
15.14, 15, 15.14-trixie, 15-trixie
15.14-alpine3.22, 15-alpine3.22, 15.14-alpine, 15-alpine
15.14-alpine3.21, 15-alpine3.21
14.19, 14, 14.19-trixie, 14-trixie
14.19-alpine3.22, 14-alpine3.22, 14.19-alpine, 14-alpine
14.19-alpine3.21, 14-alpine3.21
13.22, 13, 13.22-trixie, 13-trixie
13.22-alpine3.22, 13-alpine3.22, 13.22-alpine, 13-alpine
13.22-alpine3.21, 13-alpine3.21
问题反馈地址:
[***]
支持的架构: (更多信息)
amd64、arm32v5、arm32v6、arm32v7、arm64v8、i386、mips64le、ppc64le、riscv64、s390x
已发布镜像工件详情:
repo-info 仓库的 repos/postgres/ 目录 (历史记录)
(镜像元数据、传输大小等)
镜像更新:
official-images 仓库的 library/postgres 标签
official-images 仓库的 library/postgres 文件 (历史记录)
此描述的来源:
docs 仓库的 postgres/ 目录 (历史记录)
PostgreSQL(通常简称为“Postgres”)是一个对象关系型数据库管理系统(ORDBMS),强调可扩展性和标准合规性。作为数据库服务器,其主要功能是安全地存储数据并支持最佳实践,随后根据其他软件应用的请求(无论是同一计算机上的应用还是网络上另一台计算机上的应用,包括互联网)检索数据。它可以处理从小型单机应用到具有大量并发用户的大型互联网应用的各种工作负载。最新版本还提供数据库本身的复制功能,以增强安全性和可扩展性。
PostgreSQL 实现了 SQL:2011 标准的大部分内容,是 ACID 兼容且支持事务的(包括大多数 DDL 语句),通过多版本并发控制(MVCC)避免锁定问题,提供对脏读的免疫和完全可序列化;使用许多其他数据库不具备的索引方法处理复杂 SQL 查询;支持可更新视图和物化视图、触发器、外键;支持函数和存储过程等扩展功能,并拥有大量第三方编写的扩展。除了能够与主要的专有和开源数据库协同工作外,PostgreSQL 通过其广泛的标准 SQL 支持和可用的迁移工具,支持从这些数据库迁移。如果使用了专有扩展,其可扩展性可以通过一些内置和第三方开源兼容性扩展(如 Oracle 兼容扩展)模拟许多专有功能。
***.org/wiki/PostgreSQL
!logo
console$ docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d riscv64/postgres
默认的 postgres 用户和数据库在入口点通过 initdb 创建。
postgres 数据库是一个默认数据库,供用户、实用程序和第三方应用使用。
postgresql.org/docs
psqlconsole$ docker run -it --rm --network some-network riscv64/postgres psql -h some-postgres -U postgres psql (14.3) Type "help" for help. postgres=# SELECT 1; ?column? ---------- 1 (1 row)
docker composepostgres 的 compose.yaml 示例:
yaml# 使用 postgres/example 用户/密码凭据 services: db: image: postgres restart: always # 使用 docker compose 时设置共享内存限制 shm_size: 128mb # 或通过 swarm stack 部署时设置共享内存限制 #volumes: # - type: tmpfs # target: /dev/shm # tmpfs: # size: *** # 128*2^20 字节 = 128Mb environment: POSTGRES_PASSWORD: example adminer: image: adminer restart: always ports: - 8080:8080
运行 docker compose up,等待完全初始化后,访问 http://localhost:8080 或 [***](视情况而定)。
有多种方式扩展 postgres 镜像。这里不尝试支持所有可能的用例,仅列出一些我们认为有用的方式。
PostgreSQL 镜像使用多个容易被忽略的环境变量。唯一必需的变量是 POSTGRES_PASSWORD,其余为可选。
警告: 只有当您使用空数据目录启动容器时,Docker 特定的变量才会生效;容器启动时,任何预先存在的数据库都将保持不变。
POSTGRES_PASSWORD此环境变量是使用 PostgreSQL 镜像所必需的。它不能为空或未定义。此环境变量设置 PostgreSQL 的超级用户密码。默认超级用户由 POSTGRES_USER 环境变量定义。
注意 1: PostgreSQL 镜像在本地设置了 trust 身份验证,因此您可能会注意到从 localhost(容器内部)连接时不需要密码。但是,如果从不同的主机/容器连接,则需要密码。
注意 2: 此变量定义 PostgreSQL 实例中的超级用户密码,由初始容器启动期间的 initdb 脚本设置。它对运行时 psql 客户端可能使用的 PGPASSWORD 环境变量没有影响,如 [***] 所述。如果使用 PGPASSWORD,将作为单独的环境变量指定。
POSTGRES_USER此可选环境变量与 POSTGRES_PASSWORD 结合使用,用于设置用户及其密码。此变量将创建具有超级用户权限的指定用户和同名数据库。如果未指定,则使用默认用户 postgres。
请注意,如果指定了此参数,PostgreSQL 在初始化期间仍会显示“The files belonging to this database system will be owned by user "postgres"”。这指的是 postgres 守护进程运行的 Linux 系统用户(来自镜像中的 /etc/passwd),与 POSTGRES_USER 选项无关。有关更多详细信息,请参见“任意 --user 说明”部分。
POSTGRES_DB此可选环境变量可用于定义首次启动镜像时创建的默认数据库的不同名称。如果未指定,则使用 POSTGRES_USER 的值。
POSTGRES_INITDB_ARGS此可选环境变量可用于向 postgres initdb 发送参数。该值是 postgres initdb 期望的以空格分隔的参数字符串。这对于添加数据页校验和等功能非常有用:-e POSTGRES_INITDB_ARGS="--data-checksums"。
POSTGRES_INITDB_WALDIR此可选环境变量可用于定义 Postgres 事务日志的另一个位置。默认情况下,事务日志存储在主 Postgres 数据文件夹 (PGDATA) 的子目录中。有时,将事务日志存储在不同的目录中可能更合适,该目录可能由具有不同性能或可靠性特征的存储支持。
注意: 在 PostgreSQL 9.x 上,此变量为 POSTGRES_INITDB_XLOGDIR(反映了 [PostgreSQL 10+ 中 --xlogdir 标志重命名为 --waldir]([***]


来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429