背景简介
Docker 部署包含 pgvector 功能的数据库。
前置信息
- Docker 【Docker - Debian 安装】
详细信息
文件架构
pgvector/
|-- docker-compose.yml
|-- .db_env
|-- data/
| |--
- 修改 data 目录权限
sudo chown -R 999:999 data
第一步:配置环境变量
- 准备
.db_env配置文件
# PostgreSQL 数据库配置
POSTGRES_USER=pguser
POSTGRES_PASSWORD=pgpass
POSTGRES_DB=pgdb
说明:此文件用于设置 PostgreSQL 的用户名、密码和默认数据库,可根据实际需求修改。
第二步: 部署数据库
- 准备
docker-compose.yml配置文件
services:
pgvector:
image: pgvector/pgvector:pg17
container_name: pgvector
env_file:
- .db_env
ports:
- "5432:5432"
volumes:
- ./data:/var/lib/postgresql/data
restart: unless-stopped
说明:
image: pgvector/pgvector:pg17 为官方 pgvector 镜像,基于 PostgreSQL 17。
env_file 指定数据库环境变量文件。
volumes 将容器内 PostgreSQL 数据目录挂载到宿主机 ./data 目录,实现数据持久化。
ports 将容器内 5432 端口映射到宿主机,便于外部访问。
- 开始部署
docker compose up -d
[+] Running 2/2
✔ Network pgvector_default Created
✔ Container pgvector
Started
- 查看Log
doker logs -f --tail 5 pgvector
2025-10-24 02:28:58.244 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
2025-10-24 02:28:58.244 UTC [1] LOG: listening on IPv6 address "::", port 5432
2025-10-24 02:28:58.282 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2025-10-24 02:28:58.362 UTC [64] LOG: database system was shut down at 2025-10-24 02:28:58 UTC
2025-10-24 02:28:58.406 UTC [1] LOG: database system is ready to accept connections
第三步: 启用 pgvector
- 进入容器并登录数据库
docker exec -it pgvector psql -U pguser -d pgdb
psql (17.0 (Debian 17.0-1.pgdg120+1))
Type "help" for help.
pgdb=#
- 执行 sql 并激活 pgvector 扩展
CREATE EXTENSION vector;
CREATE EXTENSION
pgdb=#
- 查看扩展
\dx
List of installed extensions
Name | Version | Schema | Description
---------+---------+------------+------------------------------------------------------
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
vector | 0.8.0 | public | vector data type and ivfflat and hnsw access methods
(2 rows)
pgdb=#
以上便是本文的全部内容,感谢您的阅读,如遇到任何问题,欢迎在评论区留言讨论。