PostgreSQL向量扩展pgvector的Docker化部署详解
·
1.拉取镜像
docker pull pgvector/pgvector:pg16 # 拉取基于 PostgreSQL 16 并包含 pgvector 的镜像
# 或者指定其他 PostgreSQL 版本,例如:
# docker pull pgvector/pgvector:pg15
# docker pull pgvector/pgvector:pg14
2.运行容器: 使用 docker run命令启动容器。务必设置密码、端口映射和数据卷以持久化数据
docker run -d \
--name my-postgres-with-extensions \
-e POSTGRES_USER=root \ # 可选,设置管理员用户名 (默认 'postgres')
-e POSTGRES_PASSWORD=root \ # 必须,设置管理员密码
-e POSTGRES_DB=mydatabase \ # 可选,设置默认数据库名 (默认与用户名相同)
-p 5432:5432 \ # 将容器内 5432 端口映射到主机 5432 端口
-v /root/pgvectorfile/data:/var/lib/postgresql/data \ # 重要!将数据目录挂载到主机以持久化数据
pgvector/pgvector:pg16 # 使用的镜像名
docker run -d \
--name my-postgres-with-extensions \
-e POSTGRES_USER=root \
-e POSTGRES_PASSWORD=root \
-e POSTGRES_DB=mydatabase \
-p 5432:5432 \
-v /root/pgvectorfile/data:/var/lib/postgresql/data \
-v /root/pgvectorfile/extensionscripts:/docker-entrypoint-initdb.d \
pgvector/pgvector:pg16
替换说明:
-
my-postgres-vector: 给你的容器起个名字。 -
root,root,mydatabase: 替换为你想要的用户名、密码和数据库名。 -
/root/pgvectorfile/data: 替换为你主机上用于存储数据库数据的真实目录路径 。确保该目录存在或 Docker 有权限创建它。这是防止数据丢失的关键!
3.验证 pgvector 扩展:
- 连接到你的数据库容器:
docker exec -it my-postgres-with-extensions psql -U root mydatabase
# my-postgres-with-extensions 容器名
# root 管理员用户名
# mydatabase 数据库名,run 镜像的时候指定了一个数据库名
# 如果使用默认用户和数据库,可能是:
# docker exec -it my-postgres-with-extensions psql -U postgres
- 在
psql提示符下,执行以下 SQL 命令:
CREATE EXTENSION IF NOT EXISTS vector;
SELECT * FROM pg_extension WHERE extname = 'vector';
能看到 vector扩展的信息,表明它已成功加载并可用了
[root@localhost pgvectorfile]# docker exec -it my-postgres-vector psql -U root mydatabase
psql (16.10 (Debian 16.10-1.pgdg12+1))
Type "help" for help.
mydatabase=# CREATE EXTENSION IF NOT EXISTS vector;
SELECT * FROM pg_extension WHERE extname = 'vector';
CREATE EXTENSION
oid | extname | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition
-------+---------+----------+--------------+----------------+------------+-----------+--------------
16389 | vector | 10 | 2200 | t | 0.8.1 | |
(1 row)
更多推荐
所有评论(0)