【保姆级教程】使用 Docker 部署 PostgreSQL + pgvector(含踩坑指南)

【保姆级教程】使用 Docker 部署 PostgreSQL + pgvector(含踩坑指南)

随着大模型(LLM)和 RAG(检索增强生成)应用的兴起,向量数据库成为了基础设施中的标配。PostgreSQL 凭借强大的 插件,成为了目前最流行的向量数据库解决方案之一。

本文将详细介绍如何在 CentOS 7 环境下,使用 Docker 和 Docker Compose 快速部署带有 的 PostgreSQL


本教程基于以下环境进行验证,建议版本接近以避免兼容性问题:

  • OS: CentOS Linux release 7.9.2009 (Core)
  • Docker: 26.1.4 (Docker Engine – Community)
  • Docker Compose: v2.27.1

前置检查: 确保 Docker 服务已启动。



为了方便管理和数据持久化,我们在服务器上创建一个专门的目录:


我们将使用官方推荐的 镜像,该镜像基于官方 Postgres 构建并预装了 vector 扩展。

创建并编辑文件:


配置内容如下:


使用 Docker Compose V2 命令启动容器(如果镜像不存在会先去拉去镜像):


查看容器状态:


状态显示 即表示启动成功。


容器启动后,PostgreSQL 服务已经运行,但需要在具体的数据库中启用 扩展才能存储向量数据。

这一步有客户端工具的建议用客户端工具连接,会方便好看一点,比如navicat、datagrip等等,就不用执行下方的代码了


在 SQL 交互界面()执行:


提示 即成功。

注意:扩展是“==数据库级别== ”的。如果你以后创建了新数据库 ,需要在 里再次执行此命令。


如果你使用 旧版Navicat、旧版 pgAdmin 或 DBeaver 连接数据库时,可能会遇到如下报错:


原因分析: PostgreSQL 15 及以上版本删除了系统表中的 字段。如果你使用的 Docker 镜像是 或 ,而客户端工具(如 Navicat 12/15)版本较老,就会因为查询不存在的字段而报错。

解决方案(二选一):

  1. 方案 A(推荐):升级客户端
    • 将 Navicat 升级到 16.2+ 版本。
    • 或者使豆包 大模型 教程用最新版的 DBeaver(免费且兼容性好)。
    • IDEA内置的也可以凑活着用
  2. 方案 B:降级数据库版本
    • 如果你必须使用旧版 Navicat,需将 中的镜像改为 。
    • 警告:降级版本需要删除现有的数据卷,否则无法启动!
    
    

如果无法从外部连接数据库,注意检查 CentOS 防火墙:






版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/278631.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月14日 上午7:15
下一篇 2026年3月14日 上午7:15


相关推荐

关注全栈程序员社区公众号