很多 AI 应用最后都会落到两个基础能力上:结构化数据存储和向量检索。与其后面再折腾数据库扩展,不如一开始就直接用带 pgvector 的 PostgreSQL 镜像。这样既保留了 PostgreSQL 的通用能力,又给后续做 embedding 检索留好了接口。
为什么值得直接上 pgvector
如果你的项目只是普通后台,标准 PostgreSQL 就够了。但只要你准备接入知识库问答、语义检索、相似内容推荐,pgvector 就很有价值。它不需要你额外维护一套全新的数据库体系,团队对 PostgreSQL 熟悉的话,迁移成本也低。
compose 示例说明
下面这份配置已经包含最核心的三件事:账号密码、端口映射和数据持久化。
services:
db:
image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/agnohq/pgvector:16
container_name: postgres
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: postgres
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
driver: local
这个镜像已经把 pgvector 相关能力准备好了,适合本地开发、自建知识库和小规模在线服务。真正上线时,账号密码不要继续使用示例值,至少要换成独立用户名和高强度密码。
启动与连接命令
创建目录后直接启动:
mkdir -p ~/apps/postgres-pgvector
cd ~/apps/postgres-pgvector
docker compose up -d
docker compose ps
容器起来以后,可以先进入数据库确认状态:
docker exec -it postgres psql -U postgres -d postgres
如果你要给应用连接,常见连接串会是:
postgresql://postgres:postgres@127.0.0.1:5432/postgres
初期使用时最该注意什么
第一是持久化。只要卷挂载还在,重建容器通常不会丢数据;但如果你手动删了卷,就等于把数据库清空。第二是端口暴露。5432 对外开放很方便,但公网机器最好配合防火墙、内网访问或反向隧道,不要裸露给整个互联网。第三是备份,哪怕只是个人项目,也建议定期导出。
适合哪些场景
这套配置很适合作为 AI 应用的起步数据库,比如聊天记录、用户配置、文档切片和向量索引都放在同一套 PostgreSQL 里。对个人开发者来说,最大的好处不是“最强”,而是够稳、通用、生态成熟,后面无论接 ORM、管理面板还是任务队列,都比较顺手。