跳到正文
零樱钰
返回

用 Docker 部署 PostgreSQL + pgvector 作为 AI 项目数据库起点

很多 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、管理面板还是任务队列,都比较顺手。


分享到:

上一篇
用 Dockge 管理 Docker Compose,比手写命令省心很多
下一篇
用 Browserless 提供稳定的无头浏览器服务