
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
System Initiative PG Bouncer容器是基于轻量级PostgreSQL连接池工具PG Bouncer构建的Docker镜像,旨在简化PostgreSQL数据库连接管理。PG Bouncer通过维护数据库连接池,避免频繁创建和关闭连接带来的性能开销,有效提高数据库资源利用率和访问稳定性,适用于各类需要与PostgreSQL交互的应用场景。
前提条件
pgbouncer.ini)基本启动命令
bashdocker run -d \ --name pg-bouncer \ -p 6432:6432 \ # PG Bouncer默认端口 -v /path/to/local/pgbouncer.ini:/etc/pgbouncer/pgbouncer.ini \ # 挂载配置文件 -v /path/to/userlist.txt:/etc/pgbouncer/userlist.txt \ # 可选:用户认证文件 --network=postgres-network \ # 若PostgreSQL在Docker网络内,指定网络 systeminit/pg-bouncer
创建docker-compose.yml文件:
yamlversion: '3.8' services: pg-bouncer: image: systeminit/pg-bouncer container_name: pg-bouncer ports: - "6432:6432" volumes: - ./pgbouncer.ini:/etc/pgbouncer/pgbouncer.ini - ./userlist.txt:/etc/pgbouncer/userlist.txt environment: - LOG_LEVEL=info # 日志级别:debug/info/warn/error - MAX_CLIENT_CONN=500 # 最大客户端连接数 depends_on: - postgres # 若PostgreSQL也在Compose中定义 restart: unless-stopped postgres: image: postgres:14 container_name: postgres environment: - POSTGRES_USER=dbuser - POSTGRES_PASSWORD=dbpass - POSTGRES_DB=appdb ports: - "5432:5432"
配置文件(pgbouncer.ini)主要部分
[databases] - 后端数据库配置
ini# 格式:<数据库别名> = host=<postgres_host> port=<postgres_port> dbname=<dbname> user=<user> password=<pass> appdb = host=postgres port=5432 dbname=appdb user=dbuser password=dbpass # 支持通配符匹配所有数据库 * = host=postgres port=5432
[pgbouncer] - 连接池核心配置
ini# 连接池模式:session/transaction/statement pool_mode = transaction # 最大客户端连接数 max_client_conn = 500 # 每个数据库的默认池大小 default_pool_size = 20 # 每个池的最小连接数(预热连接) min_pool_size = 5 # 每个池的最大溢出连接数(临时扩容) reserve_pool_size = 10 # 连接空闲超时(秒) idle_timeout = 300 # 连接生存周期(秒),超时后强制关闭重建 server_lifetime = 3600 # 日志文件路径 logfile = /var/log/pgbouncer/pgbouncer.log # 日志级别 log_level = info # 监听地址和端口 listen_addr = 0.0.0.0 listen_port = 6432 # 管理控制台用户(用于执行状态查询等操作) admin_users = postgres
| 环境变量名 | 描述 | 默认值 |
|---|---|---|
LOG_LEVEL | 日志输出级别 | info |
MAX_CLIENT_CONN | 最大客户端连接数 | 100 |
DEFAULT_POOL_SIZE | 默认池大小 | 10 |
POOL_MODE | 连接池模式 | transaction |
LISTEN_PORT | 监听端口 | 6432 |
IDLE_TIMEOUT | 连接空闲超时(秒) | 300 |
通过PG Bouncer管理控制台监控连接状态:
bash# 连接到管理控制台 psql -p 6432 -h localhost -U postgres pgbouncer # 查看连接池状态 pgbouncer=# show pools; # 查看客户端连接 pgbouncer=# show clients; # 查看服务器连接 pgbouncer=# show servers; # 重新加载配置 pgbouncer=# reload;
pgbouncer.ini和userlist.txt文件需确保容器内用户可读(建议权限644)default_pool_size和max_client_conn,建议default_pool_size不超过PostgreSQL的max_connections值的50%您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务