维护者:
https://github.com/docker-library/postgres
获取帮助:
Docker社区Slack、Server Fault、Unix & Linux 或 Stack Overflow
问题反馈地址:
https://github.com/docker-library/postgres/issues?q=
支持的架构:(https://github.com/docker-library/official-images#architectures-other-than-amd64)
https://hub.docker.com/r/amd64/postgres/, https://hub.docker.com/r/arm32v5/postgres/, https://hub.docker.com/r/arm32v6/postgres/, https://hub.docker.com/r/arm32v7/postgres/, https://hub.docker.com/r/arm64v8/postgres/, https://hub.docker.com/r/i386/postgres/, https://hub.docker.com/r/mips64le/postgres/, https://hub.docker.com/r/ppc64le/postgres/, https://hub.docker.com/r/riscv64/postgres/, https://hub.docker.com/r/s390x/postgres/
镜像 artifact 详情:
https://github.com/docker-library/repo-info/blob/master/repos/postgres (https://github.com/docker-library/repo-info/commits/master/repos/postgres)
(镜像元数据、传输大小等)
镜像更新:
https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fpostgres
https://github.com/docker-library/official-images/blob/master/library/postgres (https://github.com/docker-library/official-images/commits/master/library/postgres)
本文档来源:
https://github.com/docker-library/docs/tree/master/postgres (https://github.com/docker-library/docs/commits/master/postgres)
PostgreSQL(通常简称为“Postgres”)是一个对象关系型数据库管理系统(ORDBMS),强调可扩展性和标准合规性。作为数据库服务器,其主要功能是安全地存储数据并支持最佳实践,随后根据其他软件应用的请求检索数据,这些应用可能运行在同一台计算机上,也可能通过网络(包括互联网)运行在其他计算机上。它可以处理从小型单机应用到具有大量并发用户的大型互联网应用的各种工作负载。最新版本还提供数据库本身的复制功能,以增强安全性和可扩展性。
PostgreSQL 实现了 SQL:2011 标准的大部分内容,符合 ACID 特性且支持事务(包括大多数 DDL 语句),通过多版本并发控制(MVCC)避免锁定问题,提供对脏读的免疫能力和完全可序列化;使用许多其他数据库不具备的索引方法处理复杂 SQL 查询;支持可更新视图和物化视图、触发器、外键;支持函数和存储过程以及其他扩展功能,并有大量第三方编写的扩展。除了能够与主要的专有和开源数据库协作外,PostgreSQL 通过广泛的标准 SQL 支持和可用的迁移工具支持从这些数据库迁移。如果使用了专有扩展,其可扩展性可以通过一些内置和第三方开源兼容性扩展(如 Oracle 兼容扩展)模拟许多专有功能。
***.org/wiki/PostgreSQL
!https://raw.githubusercontent.com/docker-library/docs/01c***b2fe592c1f93a13b4e289ada0e3a1/postgres/logo.png
console$ docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d i386/postgres
入口点脚本会通过 initdb 创建默认的 postgres 用户和数据库。
postgres 数据库是一个默认数据库,供用户、工具和第三方应用使用。
postgresql.org/docs
psql 连接console$ docker run -it --rm --network some-network i386/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: 134217728 # 128*2^20 字节 = 128Mb environment: POSTGRES_PASSWORD: example adminer: image: adminer restart: always ports: - 8080:8080
运行 docker compose up,等待初始化完成后,访问 http://localhost:8080 或 http://host-ip: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"”。这指的是镜像中 /etc/passwd 中的 Linux 系统用户(postgres 守护进程运行的用户),与 POSTGRES_USER 选项无关。有关更多详细信息,请参见“任意 --user 说明”部分。
POSTGRES_DB
此可选环境变量可用于定义首次启动镜像时创建的默认数据库的不同名称。如果未指定,则使用 POSTGRES_USER 的值。
POSTGRES_INITDB_ARGS
此可选环境变量可用于向 postgres initdb 发送参数。该值是 postgres initdb 期望的以空格分隔的参数字符串。这对于添加数据页校验和等功能非常有用:-e POSTGRES_INITDB_ARGS="--data-checksums"。
POSTGRES_INITDB_WALDIR
以下是 i386/postgres 相关的常用 Docker 镜像,适用于 关系型数据库、复杂查询、数据完整性 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务