
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像是由 Kasm Technologies 维护的 PostgreSQL 数据库镜像,基于官方 PostgreSQL 镜像构建,包含 pg_audit 审计扩展及其他定制化修改,旨在提供增强的数据库审计能力和灵活的配置选项。
pg_audit,可细粒度记录数据库活动(如 DDL、DML 操作、用户登录/退出等)。pg_audit 实现合规性审计,支持按操作类型(如 ddl、write、read)、用户角色、数据库对象等维度配置审计规则。pg_audit,镜像启动时可自动启用扩展(需配置)。4.1.1 最简启动命令
bashdocker run -d \ --name kasm-postgres \ -e POSTGRES_PASSWORD=mysecretpassword \ -p 5432:5432 \ docker.xuanyuan.run/kasmtech/postgres:latest
4.1.2 数据持久化
通过挂载卷(Volume)持久化数据库数据,避免容器删除后数据丢失:
bashdocker run -d \ --name kasm-postgres \ -e POSTGRES_PASSWORD=mysecretpassword \ -v /path/on/host/postgres-data:/var/lib/postgresql/data \ # 持久化数据目录 -p 5432:5432 \ kasmtech/postgres:latest
4.2.1 标准 PostgreSQL 环境变量
支持官方 PostgreSQL 镜像的所有标准环境变量,核心变量如下:
| 环境变量名 | 说明 | 默认值 |
|---|---|---|
POSTGRES_DB | 初始化数据库名称 | postgres |
POSTGRES_USER | 数据库管理员用户名 | postgres |
POSTGRES_PASSWORD | 管理员用户密码(必填) | 无 |
POSTGRES_INITDB_ARGS | initdb 命令额外参数(如字符集配置) | 无 |
4.2.2 Kasm 定制环境变量
针对 pg_audit 及定制化配置的扩展变量:
| 环境变量名 | 说明 | 默认值 |
|---|---|---|
KASM_PGAUDIT_ENABLE | 是否启用 pg_audit 扩展(true/false) | true |
KASM_PGAUDIT_LOG | pg_audit 审计日志级别(如 ddl,write) | ddl |
KASM_POSTGRES_CONFIG_EXTRA | 额外的 PostgreSQL 配置参数(键值对,逗号分隔,如 max_connections=100,shared_buffers=256MB) | 无 |
yamlversion: '3.8' services: postgres: image: docker.xuanyuan.run/kasmtech/postgres:latest container_name: kasm-postgres restart: always environment: POSTGRES_USER: admin POSTGRES_PASSWORD: ${DB_PASSWORD} # 建议通过环境变量文件传入,避免明文 POSTGRES_DB: appdb KASM_PGAUDIT_ENABLE: "true" KASM_PGAUDIT_LOG: "ddl, write, function" # 审计 DDL、写操作及函数调用 KASM_POSTGRES_CONFIG_EXTRA: "max_connections=200,log_min_messages=notice" ports: - "5432:5432" volumes: - postgres-data:/var/lib/postgresql/data # 命名卷持久化数据 networks: - app-network networks: app-network: driver: bridge volumes: postgres-data: # 自动创建命名卷
4.4.1 基础配置(通过环境变量)
若已设置 KASM_PGAUDIT_ENABLE=true,镜像启动时会自动加载 pg_audit 扩展并应用 KASM_PGAUDIT_LOG 配置。例如:
bashdocker run -d \ --name kasm-postgres \ -e POSTGRES_PASSWORD=secret \ -e KASM_PGAUDIT_ENABLE=true \ -e KASM_PGAUDIT_LOG="ddl, write, read" \ # 审计 DDL、写操作、读操作 kasmtech/postgres:latest
4.4.2 高级配置(手动修改配置文件)
如需更细粒度控制 pg_audit 规则,可通过以下步骤修改配置:
进入容器:
bashdocker exec -it kasm-postgres bash
编辑 PostgreSQL 配置文件:
bashvi /var/lib/postgresql/data/postgresql.conf
调整 pg_audit 配置(示例):
ini# 启用 pg_audit(镜像默认已配置,无需重复设置) shared_preload_libraries = 'pg_audit' # 确保包含 pg_audit # 审计规则配置 pg_audit.log = 'ddl, write, function' # 审计 DDL、写操作、函数调用 pg_audit.log_catalog = on # 审计系统目录操作 pg_audit.log_parameter = on # 记录 SQL 参数值 pg_audit.log_relation = on # 记录关联表名
重启 PostgreSQL 服务:
bashsu - postgres -c "pg_ctl reload"
kasmtech/postgres:16 对应 PostgreSQL 16.x)。pg_dump 工具或第三方备份方案(如 WAL-G)实现。pg_audit 日志默认写入 PostgreSQL 日志文件,需配置日志轮转(如 logrotate)避免磁盘占满。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 kasmweb/postgres 相关的常用 Docker 镜像,适用于 关系型数据库、复杂查询、数据完整性 等不同场景: