
本镜像是由 Kasm Technologies 维护的 PostgreSQL 数据库镜像,基于*** PostgreSQL 镜像构建,包含 pg_audit 审计扩展及其他定制化修改,旨在提供增强的数据库审计能力和灵活的配置选项。
pg_audit,可细粒度记录数据库活动(如 DDL、DML 操作、用户登录/退出等)。pg_audit 实现合规性审计,支持按操作类型(如 ddl、write、read)、用户角色、数据库对象等维度配置审计规则。pg_audit,镜像启动时可自动启用扩展(需配置)。bashdocker run -d \ --name kasm-postgres \ -e POSTGRES_PASSWORD=mysecretpassword \ -p 5432:5432 \ kasmtech/postgres:latest
通过挂载卷(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
支持*** PostgreSQL 镜像的所有标准环境变量,核心变量如下:
| 环境变量名 | 说明 | 默认值 |
|---|---|---|
POSTGRES_DB | 初始化数据库名称 | postgres |
POSTGRES_USER | 数据库管理员用户名 | postgres |
POSTGRES_PASSWORD | 管理员用户密码(必填) | 无 |
POSTGRES_INITDB_ARGS | initdb 命令额外参数(如字符集配置) | 无 |
针对 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: 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: # 自动创建命名卷
若已设置 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
如需更细粒度控制 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)避免磁盘占满。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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