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)

更多推荐