
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
<[***]>
可用镜像地址:
registry.gitlab.com/tozd/docker/postgresqltozd/base ← tozd/dinit ← tozd/postgresql
9.3: PostgreSQL 9.39.4: PostgreSQL 9.49.5: PostgreSQL 9.59.6: PostgreSQL 9.610: PostgreSQL 1011: PostgreSQL 1112: PostgreSQL 1213: PostgreSQL 1314: PostgreSQL 1415: PostgreSQL 1516: PostgreSQL 1617: PostgreSQL 17/var/log/postgresql: 当LOG_TO_STDOUT未设置为1时,日志文件存储路径。/var/lib/postgresql: 持久化此数据卷以避免数据丢失。首次启动时可选初始化配置:
PGSQL_ROLE_1_USERNAME: 要创建的用户用户名。PGSQL_ROLE_1_PASSWORD: 创建用户的密码。PGSQL_ROLE_1_FLAGS: 用户创建时的标志,默认值为LOGIN。PGSQL_DB_1_NAME: 要创建的数据库名称。PGSQL_DB_1_OWNER: 数据库所有者的用户名,创建数据库时必须设置。PGSQL_DB_1_ENCODING: 数据库编码,默认值为UNICODE。PGSQL_DB_1_LC_COLLATE: 数据库排序规则,默认值为空。PGSQL_DB_1_LC_CTYPE: 数据库字符分类,默认值为空。PGSQL_DB_1_TEMPLATE: 创建新数据库的模板名称,默认值为DEFAULT。PGSQL_DB_1_POSTGIS: 若设置,将在数据库中安装PostGIS。其他环境变量:
LOG_TO_STDOUT: 若设置为1,日志输出到标准输出(可通过docker logs查看),而非日志数据卷。5432/tcp: PostgreSQL监听端口。提供PostgreSQL SQL服务器的Docker镜像,不同标签对应不同PostgreSQL版本。需挂载数据卷/var/lib/postgresql以避免容器重建时数据丢失,若数据卷为空,镜像将在首次启动时初始化。
扩展此镜像时,可添加脚本/etc/service/postgresql/run.initialization,该脚本将在容器启动时、初始化完成后、PostgreSQL守护进程运行前执行。
当LOG_TO_STDOUT设置为1时,镜像日志输出到标准输出和标准错误流,所有标准输出为JSON格式。
本镜像支持两种使用方式:多服务共享的数据库(需手动创建用户和数据库),或单用户/应用专用数据库(通过环境变量自动初始化)。
首次运行后,可从容器内部以管理员身份连接PostgreSQL(假设容器名为postgresql):
bash$ docker exec -t -i postgresql /bin/bash $ psql -U postgres postgres
创建用户:
bash$ createuser -U postgres -DRS -PE <用户名>
创建数据库:
bash$ createdb -U postgres -O <用户名> <数据库名>
安装PostGIS扩展(连接数据库后执行):
sql> CREATE EXTENSION postgis;
从容器外部备份数据库:
bash$ docker exec postgresql pg_dump -Fc -U postgres <数据库名> > /var/backups/<数据库名>.pgdump
从容器外部恢复数据库:
bash$ cat /var/backups/<数据库名>.pgdump | docker exec -i postgresql pg_restore -Fc -U postgres -d <数据库名>
首次启动初始化数据卷时,可通过环境变量自动创建用户和数据库。例如,启动容器时指定以下变量:
bashdocker run -d \ --name postgres-single \ -p 5432:5432 \ -v postgres-data:/var/lib/postgresql \ -e PGSQL_ROLE_1_USERNAME=appuser \ -e PGSQL_ROLE_1_PASSWORD=apppass \ -e PGSQL_DB_1_NAME=appdb \ -e PGSQL_DB_1_OWNER=appuser \ tozd/postgresql:16
yamlversion: '3' services: postgresql: image: tozd/postgresql:16 ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql - postgres_logs:/var/log/postgresql environment: - LOG_TO_STDOUT=1 - PGSQL_ROLE_1_USERNAME=admin - PGSQL_ROLE_1_PASSWORD=securepass - PGSQL_DB_1_NAME=maindb - PGSQL_DB_1_OWNER=admin volumes: postgres_data: postgres_logs:
项目提供https://github.com/tozd/docker-postgresql%EF%BC%8C%E6%96%B9%E4%BE%BF%E5%9C%A8GitHub%E4%B8%8A fork 项目。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 tozd/postgresql 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: