pgvector Docker 镜像拉不到 latest?30 秒选对标签
【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvector
拉 pgvector Docker 镜像最容易在第一步卡住:这个给 Postgres 做向量相似检索的扩展,docker pull pgvector/pgvector会直接报 latest 标签不存在。这不是异常,官方镜像就是没有 latest 标签,标签由 Postgres 主版本号决定,改法一句话:换成匹配你数据库的标签。
$ docker pull pgvector/pgvector Error response from daemon: manifest for pgvector/pgvector:latest not found: manifest unknown速答:正确的拉取格式
🎯 赶时间的读者记住这一行就够了:
docker pull pgvector/pgvector:pg{主版本号}把花括号换成你数据库的主版本号,比如 Postgres 16 就用pg16。
镜像标签怎么选:一张速查表
| Postgres 主版本 | 镜像标签 |
|---|---|
| 13 | pg13 |
| 14 | pg14 |
| 15 | pg15 |
| 16 | pg16 |
| 17 | pg17 |
| 18 | pg18 |
想同时锁住扩展版本,还有0.8.6-pg17这种形式的标签,完整清单见 README.md 的 Docker 一节,构建参数可以看 Dockerfile。
为什么没有 latest
pgvector 是 Postgres 的扩展,不是独立服务。扩展接口的兼容性随 Postgres 主版本变化,同一个编译产物没法跨主版本通用,所以官方镜像按主版本分别构建,版本号直接写进标签。
⚠️ 反过来,如果给一个统一的 latest,"最新的 pgvector 配任意 Postgres"就成了一笔糊涂账,用户很容易拿到不兼容的组合。显式的主版本标签从源头上掐掉了这种风险,也顺便保证了测试和生产用的是同一份镜像。
30 秒验证镜像可用
容器起来后,真正的验收不是docker images里能看到镜像,而是能不能建扩展——进容器执行一条命令:
docker exec -it 容器名 psql -U postgres -c "CREATE EXTENSION vector;"CREATE EXTENSION vector;执行成功,说明拉对了;如果提示扩展不可用,就是主版本没对上,回到上面的表格重新选标签即可。
顺手避坑
- 标签大小写:小写
pg16才对,写成PG16会找不到 - 主版本写错:数据库是 16 却用了 pg15,扩展在服务端加载不起来
- 镜像名写错:完整名是
pgvector/pgvector,漏写或拼错仓库名同样会失败
把pgvector/pgvector:pg16这样的固定标签写进部署脚本,下次拉到的就是同一份镜像——显式标签,就是可复现部署的全部意义。
【免费下载链接】pgvectorOpen-source vector similarity search for Postgres项目地址: https://gitcode.com/GitHub_Trending/pg/pgvector
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考