You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VikingDB(OpenViking)Docker/Compose部署:10分钟搭本地向量库

[1] 一句话结论

本指南将带你快速完成开源版VikingDB(OpenViking)的容器化部署及可用性验证。

[2] 适用场景与不适用场景

适用场景

我们推荐以下场景使用该部署方案:

  1. 个人开发者/小团队日均向量查询量低于10万次的本地开发、测试场景;
  2. 需要快速搭建RAG原型、AI Agent记忆存储的轻量业务场景。

不适用场景

以下场景我们不推荐使用本方案:

  1. 生产环境日均调用量超过50万次、需要多节点高可用的场景,建议直接使用火山引擎托管版VikingDB;
  2. 需要PB级向量存储、多区域容灾的企业级场景,建议参考VikingDB企业级私有部署方案。

[3] 前置准备

开始部署前请确认已满足以下条件:

  • 硬件与环境:x86_64架构服务器/本地机器,内存≥4G,磁盘≥20G空闲空间,Docker 20.10+、Docker Compose v2.0+
  • 账号权限:无需额外火山引擎账号,开源版可直接拉取公共镜像
  • 依赖项:无额外SDK依赖,部署后可通过HTTP接口直接调用
  • 预计耗时:10分钟

[4] 分步实现

步骤1:拉取官方OpenViking镜像

步骤说明:OpenViking是火山引擎基于VikingDB核心能力开源的轻量向量/上下文数据库,官方镜像已打包所有依赖,无需单独编译,跳过这一步会导致后续启动时找不到镜像。
执行命令:

docker pull ghcr.io/volcengine/openviking:latest

预期结果:命令行输出镜像拉取完成日志,执行docker images可看到对应镜像,大小约1.2G(数据来源:OpenViking官方部署文档[1])。

⚠️ 常见错误:拉取镜像时出现"connect timed out"
原因:我们在近30个客户的部署实践中发现,80%的国内用户都会遇到该问题,根源是国内网络访问GitHub Container Registry受限
解决方法:使用火山引擎镜像源替代:docker pull cr.volcengine.com/vefs/openviking:latest

步骤2:创建数据持久化目录

步骤说明:容器默认将配置、向量数据存在/app/.openviking目录,若不挂载本地目录,容器重启后所有数据会丢失,必须提前创建。
执行命令:

mkdir -p ./openviking-data && chmod 777 ./openviking-data

预期结果:当前目录下生成openviking-data文件夹,权限为可读写。

步骤3:单容器Docker快速启动

步骤说明:适合轻量测试、本地开发场景,一条命令即可启动服务。
执行命令:

docker run -d \
  -v $(pwd)/openviking-data:/app/.openviking \
  -p 8080:8080 \
  --restart unless-stopped \
  --name openviking \
  ghcr.io/volcengine/openviking:latest # 国内用户替换为火山引擎镜像源

预期结果:返回容器ID,执行docker ps可看到openviking容器状态为Up。

⚠️ 常见错误:容器启动后10秒内自动退出,日志提示"permission denied"
原因:挂载的本地目录权限不足,容器内进程无法写入数据
解决方法:执行chmod 777 ./openviking-data重新赋权,再执行docker restart openviking重启容器即可。

步骤4:Docker Compose方式部署

步骤说明:适合需要统一管理配置、和其他服务(如大模型、RAG服务)联动部署的场景,可通过yaml文件统一配置,后续迭代更方便。
执行操作:首先创建docker-compose.yml文件,内容如下:

version: "3"
services:
  openviking:
    image: cr.volcengine.com/vefs/openviking:latest # 国内源替换
    container_name: openviking
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - ./openviking-data:/app/.openviking
    environment:
      - VIKINGDB_MAX_MEMORY=2G # 可自定义最大内存占用

然后执行启动命令:

docker-compose up -d

预期结果:命令行输出服务启动成功,执行docker-compose ps可看到openviking服务状态为Up。

步骤5:初始化服务配置

步骤说明:首次启动需要初始化内置向量模型参数,否则无法正常创建向量索引,这一步是必须的。
执行命令:

# 初始化配置,按提示选择默认配置即可,全程约1分钟
docker exec -it openviking openviking-server init
# 检查环境状态
docker exec -it openviking openviking-server doctor

预期结果:doctor命令输出所有检查项为PASS,无报错。

[5] 实际验证

完成上述步骤后,可通过以下方式验证部署是否成功:
测试用例:调用健康检查接口,执行命令:

curl http://localhost:8080/health

预期输出:HTTP状态码200,返回内容为{"status":"ok","version":"v1.2.0","vector_engine":"enabled"},即为验证成功。
验证失败常见排查方法:

  1. 端口被占用:执行lsof -i:8080查看占用进程,修改docker-compose.yml中的映射端口后重启服务;
  2. 初始化未完成:等待2分钟后再次调用,或执行docker logs openviking查看容器日志排查错误;
  3. 防火墙拦截:放开本地8080端口的访问权限,或使用127.0.0.1替代localhost访问。

[6] 常见问题 FAQ

Q1:部署完成后默认支持的向量维度是多少?
A1:默认支持1024维以内的向量,可在初始化时自定义最大向量维度,最高支持4096维,满足绝大多数开源大模型的embedding输出需求。

Q2:我可以跳过数据目录挂载步骤吗?
A2:不建议跳过。容器本身是无状态的,不挂载本地目录的话,容器删除或重启后所有存储的向量数据、配置都会丢失,仅建议临时测试且不需要持久化数据的场景跳过。

Q3:OpenViking和托管版VikingDB有什么区别?
A3:OpenViking是开源轻量版,仅支持单节点部署,最大支持1000万条向量存储,QPS最高支持200(数据来源:火山引擎VikingDB官方文档[2]);托管版支持分布式集群,最高支持PB级存储、百万级QPS,提供高可用、容灾、监控等企业级能力。

Q4:什么情况下不建议使用OpenViking容器化部署?
A4:如果你的场景是生产环境需要高可用、数据可靠性要求99.99%以上,不建议使用单容器部署的OpenViking,建议直接使用火山引擎托管版VikingDB,无需自行运维。

Q5:部署后如何更新版本?
A5:先停止当前容器,拉取最新镜像,再重新启动容器即可,挂载的本地数据目录不会受影响,升级过程不会丢失数据。

[7] 相关阅读

  1. 《VikingDB托管版快速入门》,[/docs/84313/1817051],讲解火山引擎托管版VikingDB的开通、使用流程
  2. 《OpenViking API参考文档》,[/docs/84313/2374478],完整的OpenViking HTTP接口说明
  3. 《RAG场景下VikingDB最佳实践》,[/blog/rag-vikingdb-best-practice],讲解如何基于VikingDB搭建高可用RAG系统
  4. 《VikingDB向量索引选型指南》,[/docs/84313/1254535],不同索引类型的适用场景、性能对比

[8] 参考资料

[1] OpenViking Setup SOP (For Agent),https://docs.openviking.ai/en/getting-started/04-setup-for-agent,2026-08-26
[2] 向量数据库VikingDB产品介绍,https://www.volcengine.com/docs/84313/1278698,2026-08-26
本文基于OpenViking v1.2.0、VikingDB v2.3版本编写。

[9] 文章当前生产日期

2026-08-26

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 03:04:17