Docker 部署 OpenViking:轻松搭建 AI Agent 上下文数据库平台

等保2.0下可信验证的动态实现与合规实践 本文深入解读等保2.0标准中的“可信验证”要求,并重点探讨其动态实现与合规实践。文章阐述了从可信根、信任链到动态验证的核心概念,拆解了不同安全等级的实施差异,并提供了从硬件选型、软件赋能到平台集成的四步落地指南。通过行业案例与避坑心得,为构建覆盖计算环境、区域边界、通信网络和安全管理中心的全链条可信防御体系提供了实用参考。 阅读详情

本文基于 openviking/openviking:v0.4.23,以 v0.4.23 版本实测,测试平台 Ubuntu 24.04 Linux。

OpenViking 是什么

OpenViking 由字节跳动火山引擎 Viking 团队开源,是给 AI Agent 用的上下文数据库。项目资料、用过的经验和以后还能照做的方法,放在同一套虚拟文件系统里,按路径保存、查找,并在下一次任务里取出来用。

常见的 RAG 先把文档切开,再按相似度去找片段。OpenViking 要管的是这些内容如何放在一起、如何分层去读,以及一次任务结束以后如何留下来。

OpenViking 能做什么

  • 放在同一套目录里:文档、外部资料、用户记忆和技能用同一套目录组织。
  • 先读摘要再打开原文:目录带有摘要和概览,确认相关之后再读详细内容。
  • 在目录范围内检索:语义搜索可以限定在某个目录,结果仍能看出它原来的位置。
  • 把会话留成记忆:对话中的偏好和任务经验可以沉淀下来,供以后的任务调用。
  • 打开目录核对结果:保存下来的内容可以按目录查看,方便对照这次检索用到了什么。

为什么要使用 OpenViking

Agent 要连续做一件事时,当次提示词和一个向量库往往接不住。资料在一处,偏好在另一处,做过的事到下一次又对不上。检索偏了,也看不出读到的是哪一份材料,后面排查和改动都会变多。

OpenViking 把资料、记忆和技能收进同一套目录。做智能体,或要给现有 AI 项目补上可查找、可记住、可复用的上下文时,可以用它。

使用 Docker 部署 OpenViking

OpenViking 可以用 Docker 启动,本机不必先安装它的 Python 运行环境。开始之前,先准备好 Docker,并配好实际要用的模型服务。

下面用 Docker Compose 写好运行配置,启动服务,并确认可以访问。

环境要求

项目建议
系统Linux(本文命令按 Ubuntu 目录书写);macOS 把 /www/wwwroot/openviking 换成 ~/docker/openviking
DockerEngine + Compose V2(docker compose)
架构linux/amd64、linux/arm64(v0.4.23 两套都有)
磁盘Ubuntu 24.04 上 docker images 显示 DISK 1.74GB、CONTENT 308MB(amd64);原文和向量写在挂载目录,随入库增长
内存容器不打包大模型。占用随入库规模增长,先用一份有代表性的语料观察
端口宿主机 1933/tcp → 容器 1933
出网容器要能访问方舟 API:https://ark.cn-beijing.volces.com
模型嵌入模型与 VLM 各一个。本文按火山方舟:doubao-embedding-vision-251215、doubao-seed-2-0-lite-260428
工作目录/www/wwwroot/openviking

先在方舟创建 API Key,并打开 Doubao-Embedding-Vision 开通嵌入模型。未开通时 doctor 会报 404、ModelNotOpen,见下文 Q4。模型说明见火山引擎模型购买说明。

docker --version
docker compose version

Linux 未装 Docker 可使用轩辕镜像一键安装脚本:

bash <(wget -qO- https://get.xuanyuan.cloud/docker.sh)

备用地址:

bash <(wget -qO- https://get.xuanyuan.me/docker.sh)

更多见 轩辕镜像使用手册。


标签怎么选

GitHub Release v0.4.23 发布于 2026-10-02。同日推送的 latest 与 v0.4.23 指向同一份镜像清单;main 会随主分支构建继续变。

标签说明是否写入本文命令
v0.4.23当前正式版本,amd64 / arm64是
v0.4.22上一正式版本仅作回退
v0.4.23.dev…、main开发构建,会移动否
latest浮动标签,之后可能改指向否

完整列表见标签页。升级时改 Compose 里的标签,并对照 Releases。


拉取镜像

用 轩辕镜像 加速拉取:

docker pull docker.xuanyuan.run/openviking/openviking:v0.4.23

Ubuntu 24.04 实测:

v0.4.23: Pulling from openviking/openviking
b14f2539d39c: Pull complete
589007fc1f86: Pull complete
49ae429f6151: Pull complete
b967c07a5a02: Pull complete
6b37362b3da7: Pull complete
42d2af197b20: Pull complete
bfd385278b10: Pull complete
9d8258efce77: Pull complete
cf83b3575e87: Pull complete
4f4fb700ef54: Pull complete
7e7563f2ddb6: Pull complete
5ed2ef5ecece: Pull complete
44136fa355b3: Download complete
12c7c1f81ade: Download complete
Digest: sha256:e29398501454e01838586ed5dfde2187f3b5b3da8b16551b8d87827a6ec317cb
Status: Downloaded newer image for docker.xuanyuan.run/openviking/openviking:v0.4.23
docker.xuanyuan.run/openviking/openviking:v0.4.23

拉取完成后确认本地有这个标签:

docker images docker.xuanyuan.run/openviking/openviking:v0.4.23
IMAGE                                               ID             DISK USAGE   CONTENT SIZE   EXTRA
docker.xuanyuan.run/openviking/openviking:v0.4.23   e29398501454       1.74GB          308MB

编写 ov.conf

容器内工作目录是 /app/.openviking,配置文件是 /app/.openviking/ov.conf。storage.workspace 写成 ./data 时,原文和向量落在 /app/.openviking/data。下面把宿主机 /www/wwwroot/openviking/data 整目录挂进去,配置和数据在同一次挂载里。

入口监听 0.0.0.0:1933,宿主机才能把端口映射进来。server.root_api_key 必须是非空字符串,否则进程拒绝启动。这把根密钥只填「连接设置」里的管理员栏。方舟 API Key 只填 embedding 和 vlm 的 api_key。两把钥匙对调后,方舟返回 401,见 Q3。

Compose 里 OPENVIKING_WITH_BOT 为 1。对话用这里的 vlm(doubao-seed-2-0-lite-260428)。

  1. 创建目录,并把所有权交给当前用户,后面的 cat 才能写进去:
sudo mkdir -p /www/wwwroot/openviking/data
sudo chown -R "$USER":"$USER" /www/wwwroot/openviking
  1. 方舟 API Key 已经复制好(一般以 sk- 开头)、嵌入模型已经开通之后,再写配置。只改第一行引号里的内容。ROOT_API_KEY 由 openssl 生成,并写到 /www/wwwroot/openviking/root_api_key.txt,这个文件不在挂载目录里。
ARK_API_KEY='sk-这里换成方舟控制台复制的密钥'
ROOT_API_KEY="$(openssl rand -hex 32)"

umask 077
printf '%s
' "$ROOT_API_KEY" > /www/wwwroot/openviking/root_api_key.txt

if [ "$ARK_API_KEY" = "sk-这里换成方舟控制台复制的密钥" ]; then
  echo "还没换成方舟密钥,ov.conf 没有写入"
else
  cat > /www/wwwroot/openviking/data/ov.conf <<EOF
{
  "server": {
    "root_api_key": "${ROOT_API_KEY}"
  },
  "storage": {
    "workspace": "./data",
    "agfs": { "backend": "local" },
    "vectordb": { "backend": "local" }
  },
  "embedding": {
    "dense": {
      "provider": "volcengine",
      "api_key": "${ARK_API_KEY}",
      "model": "doubao-embedding-vision-251215",
      "api_base": "https://ark.cn-beijing.volces.com/api/v3",
      "dimension": 1024,
      "input": "multimodal"
    }
  },
  "vlm": {
    "provider": "volcengine",
    "api_key": "${ARK_API_KEY}",
    "model": "doubao-seed-2-0-lite-260428",
    "api_base": "https://ark.cn-beijing.volces.com/api/v3",
    "temperature": 0.1,
    "max_retries": 3
  }
}
EOF
  echo "ov.conf 已写入"
fi

终端应打印 ov.conf 已写入。若打印「还没换成方舟密钥」,改完 ARK_API_KEY 再执行一次。

目录关系:

/www/wwwroot/openviking/root_api_key.txt   根密钥,不进容器
/www/wwwroot/openviking/data/ov.conf       →  /app/.openviking/ov.conf
/www/wwwroot/openviking/data/data/         →  /app/.openviking/data

workspace 保持 ./data。写成宿主机绝对路径时,容器里没有那个目录。

  1. 常驻服务还没启动。用一次性容器检查。Embedding 不是 PASS 时,先改配置,不要进入下一节:
docker run --rm 
  -v /www/wwwroot/openviking/data:/app/.openviking 
  docker.xuanyuan.run/openviking/openviking:v0.4.23 
  openviking-server doctor

Ubuntu 24.04 上,模型已开通且两把钥匙填对之后,Embedding 为 PASS。VikingBot 那一行是 WARN:用户还没在 Studio 里创建,不挡后面的启动。

OpenViking Doctor

  Config:         PASS  /app/.openviking/ov.conf
  Python:         PASS  3.13.16 (>= 3.10 required)
  Native Engine:  PASS  variant=x86_sse3
  AGFS:           PASS  AGFS SDK 0.1.7
  Authentication: PASS  api_key: 1 passed, 0 warned, 0 failed
  Embedding:      PASS  volcengine/doubao-embedding-vision-251215 api_base=https://ark.cn-beijing.volces.com/api/v3 dimension=1024 probe ok (dimension=1024)
  VLM:            PASS  volcengine/doubao-seed-2-0-lite-260428
  Ollama:         PASS  not configured
  VikingBot:      WARN  bot.ov_server not configured and ovcli.conf api_key not configured
                  Fix: Configure bot.ov_server.api_key or ovcli.conf api_key with an OpenViking User API key
  Disk:           PASS  79.8 GB free in data

  1 warning(s). Review the suggestions above.

若输出末尾出现 LiteLLM 拉取 model_prices_and_context_window.json 超时,它会改用镜像里的价目表,服务仍可继续。方舟报 401 或 404 时看 Q3、Q4。


Docker Compose 部署

宿主机 1933 对应容器 1933。API 与 Web Studio 共用这个端口,Studio 在 /studio,不另开端口。

  1. 进入工作目录并写入 Compose。image 使用上一节拉好的标签:
cd /www/wwwroot/openviking
cat > docker-compose.yml <<'EOF'
services:
  openviking:
    image: docker.xuanyuan.run/openviking/openviking:v0.4.23
    container_name: openviking
    restart: unless-stopped
    ports:
      - "1933:1933"
    volumes:
      - /www/wwwroot/openviking/data:/app/.openviking
    environment:
      OPENVIKING_WITH_BOT: "1"
      OPENVIKING_SERVER_PORT: "1933"
    healthcheck:
      test: ["CMD", "openviking-entrypoint", "--healthcheck"]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 30s
EOF

只在本机访问时,把端口改成 127.0.0.1:1933:1933。局域网要访问时再对 1933/tcp 放行。1933 已被占用时,同时改三处:Compose 的宿主机端口、OPENVIKING_SERVER_PORT、以及 ov.conf 里如果写了 server.port 也要一致。入口脚本优先读环境变量 OPENVIKING_SERVER_PORT,其次才读配置文件里的端口。

  1. 启动。Ubuntu 24.04 实测会先建网络再拉起容器:
docker compose up -d
[+] up 2/2
 ✔ Network openviking_default Created
 ✔ Container openviking       Started
  1. 看状态。启动后约 12 秒,健康检查还是 health: starting,这时访问 1933 会连接被重置:
docker compose ps
curl -sS http://127.0.0.1:1933/health
curl -sS http://127.0.0.1:1933/ready
NAME         IMAGE                                               COMMAND                  SERVICE      CREATED          STATUS                             PORTS
openviking   docker.xuanyuan.run/openviking/openviking:v0.4.23   "openviking-entrypoi…"   openviking   14 seconds ago   Up 12 seconds (health: starting)   0.0.0.0:1933->1933/tcp, [::]:1933->1933/tcp
curl: (56) Recv failure: Connection reset by peer

/health 和 /ready 在这个窗口都会这样。这是端口还没接好。等 docker compose ps 的 STATUS 不再是 health: starting,再执行那两条 curl。Studio 能打开之后,以「浏览器首次使用」里「监控」页的组件状态为准。改过 ov.conf 后,再执行一次 docker compose up -d,让进程重新读配置。


浏览器首次使用

浏览器打开 http://服务器IP:1933/studio。本文局域网地址以实测 http://192.168.1.35:1933 为例。

还没在「连接设置」里保存密钥时,首页三张卡都写着「当前连接身份尚未确认」:

OpenViking Studio 首页,上下文数据量、今日 Token 用量、今日检索次数都提示身份尚未确认

  1. 打开左侧「连接设置」(地址是 /studio/settings)。服务地址会带出当前访问的主机和端口。Root 密钥和用户密钥都空着时,「控制面权限」「数据访问」都是未检查。把 /www/wwwroot/openviking/root_api_key.txt 里的那一行填进「Root 或管理员 API 密钥」并保存。

连接设置页,服务地址为局域网 1933,API 密钥模式,控制面权限与数据访问均为未检查

密钥生效后,首页能读到用量。实测在还没建用户时,上下文数据量已经是 6(文件 2、技能 2、记忆 2),今日 Token 用量 972,全部来自 Embedding 输入:

Studio 首页显示上下文数据量 6、今日 Token 用量 972、今日检索次数 0

  1. 打开左侧「用户与权限」。账号下还没有用户时,用户数和可见 API 密钥都是 0。点「+ 新增用户」。

用户与权限页,用户数 0,提示选中的账号下没有用户

  1. 在 default 空间填写用户名,角色选 user。实测用户名为 xuanyuan,记忆策略用「通用策略」(用户记忆抽取、Agent 经验记忆抽取都勾上)。生成的密钥只在创建后展示一次。

新增用户对话框,用户名 xuanyuan,角色 user,记忆策略为通用策略

新的 API 密钥对话框,身份为 default / xuanyuan,关闭前需复制密钥

点「复制」,再点「收起」。这把密钥只完整显示这一次。

  1. 回到「连接设置」,把用户密钥填进「用户 API 密钥」并保存。根密钥留在管理员那一栏。保存后,控制面权限和数据访问都是正常,用户身份是 [default/xuanyuan]。「导入一份文档并检索」里的 ov 也用这把用户密钥。

连接设置两项均为正常,服务地址为局域网 1933,用户身份 default/xuanyuan

  1. 打开「VikingBot」。Compose 里已经是 OPENVIKING_WITH_BOT=1,刷新后是对话入口。「机器人」里目前只有飞书可以点连接,Slack、钉钉、Discord、Telegram 显示开发中。若页面仍写着「先启用 VikingBot」,看 Q7。

VikingBot 对话页,有新建对话按钮和开始与 VikingBot 对话

添加机器人对话框,飞书为连接飞书,其余平台为开发中

  1. 点「+ 新建对话」。空会话标题是 OpenViking,输入框提示「输入消息…」。实测发送「你好,你是谁」,回复来自 VikingBot,会话出现在左侧列表。

新建对话的空白输入页,中间文案为探索你的知识库

VikingBot 对话「你好,你是谁」,回复说明自己基于 OpenViking 上下文数据库

「检索」在还没有可检索上下文时是空的,可点「上传文件」。「编译」要先在 Skills 里添加带 SKILL.md 的目录,否则编译 Skill 一栏写着暂无可用 Skill。「Agent 经验」在会话提交之前也是空的。

检索页提示当前还没有可检索的上下文,并有上传文件按钮

新建编译页,编译 Skill 暂无可用,素材目录为 viking://resources

Agent 经验页显示还没有 Agent 经验,并列出三条检查

「请求日志」能看到当前身份 default / xuanyuan 的调用。实测总调用 41 次,成功率 93%,其中一条 GET /api/v1/fs/ls 为 404,其余多为 200。「任务中心」在没有后台任务时成功率为 100%(0 条任务)。「定时同步」在没有添加远程资源时为空。

请求日志,范围 default / xuanyuan,总调用 41 次,成功率 93%

任务中心,任务成功率 100%,暂无后台任务

定时同步页显示暂无定时同步

「监控」页标题带版本 v0.4.23。实测 6 个组件都是正常:任务队列、向量数据库、模型、文件系统、锁、检索。

监控页 v0.4.23,所有组件运行正常,6/6

页面没有账号密码框。管理员栏填根密钥,数据访问填用户密钥。


导入一份文档并检索

「浏览器首次使用」里的「检索」还是空的。要在容器里导入一份样例,先有用户密钥。导入会调用嵌入模型和 VLM,按方舟账单计费。样例只有几行。

  1. 在挂载目录里放一份样例,容器内路径是 /app/.openviking/samples/ov-release-rotation.md:
mkdir -p /www/wwwroot/openviking/data/samples
cat > /www/wwwroot/openviking/data/samples/ov-release-rotation.md <<'EOF'
# 发布值班

OpenViking 每周五发一个版本。
值班顺序:qin-ctx、zhoujh01、ZaynJarvis、t0saki。
EOF
  1. 写命令行配置。api_key 填「浏览器首次使用」里复制的用户密钥。url 用容器内访问本服务的地址:
cat > /www/wwwroot/openviking/data/ovcli.conf <<'EOF'
{
  "url": "http://127.0.0.1:1933",
  "api_key": "REPLACE_WITH_USER_API_KEY"
}
EOF
  1. 导入并等到处理结束。超时就把命令返回的 task_id 交给 ov task status,状态变成 completed 再继续:
docker exec openviking ov health
docker exec openviking ov add-resource /app/.openviking/samples/ov-release-rotation.md 
  --to viking://resources/ov-release-rotation 
  --wait --timeout 120
  1. 看目录、摘要,并在这个资源目录里检索:
docker exec openviking ov tree viking://resources/ov-release-rotation
docker exec openviking ov overview viking://resources/ov-release-rotation
docker exec openviking ov find "每周版本谁值班" --uri viking://resources/ov-release-rotation

find 的结果里带 viking:// URI。要把某一条读出来,把该 URI 传给 ov read。

宿主机已有 Node.js 18 及以上时,可以 npm install -g @openviking/cli,在 ov config 里填 http://服务器IP:1933 和同一把用户密钥。上面的检查用容器里的 ov 即可。


备选:docker run

没有 Compose 时,用同一份挂载和同一套环境变量。已经用 Compose 起过名为 openviking 的容器时,先在 /www/wwwroot/openviking 执行 docker compose down,再跑下面的命令,避免容器名冲突。

ov.conf 仍然要按「编写 ov.conf」写好,并通过 doctor。

docker run -d 
  --name openviking 
  --restart unless-stopped 
  -p 1933:1933 
  -v /www/wwwroot/openviking/data:/app/.openviking 
  -e OPENVIKING_WITH_BOT=1 
  -e OPENVIKING_SERVER_PORT=1933 
  docker.xuanyuan.run/openviking/openviking:v0.4.23

查看与停止:

docker ps --filter name=openviking
docker logs -f --tail 100 openviking
curl -sS http://127.0.0.1:1933/health
curl -sS http://127.0.0.1:1933/ready
docker stop openviking

浏览器地址与「浏览器首次使用」相同。


常见问题

Q1:latest 或 main 能不能写进 Compose?

v0.4.23 是 2026-10-02 的正式标签。latest 以后可能改指向,main 随主分支更新。本文命令固定 v0.4.23。回退时把标签换成 v0.4.22,先备份「编写 ov.conf」里的数据目录再 up -d。

Q2:容器一起就退出,日志里提到 dev mode 或 loopback?

入口在容器里绑定 0.0.0.0。server.root_api_key 为空时,进程把它当成 dev 模式,拒绝在非回环地址启动。把「编写 ov.conf」生成的根密钥写进 server.root_api_key,再执行 docker compose up -d。

openviking-server init 在 v0.4.23 里选 Local,会写成 127.0.0.1:1933,认证是 auth dev (no auth),并先把已有 ov.conf 备份成 ov.conf.bak。Docker 部署用「编写 ov.conf」里的 JSON。已经跑过向导时,绑定地址选 Remote(0.0.0.0),保存前摘要里要有 root key,然后再跑 doctor。

Q3:doctor 里 Embedding 是 FAIL,错误码 401,The API key format is incorrect?

模型密钥不是方舟签发的。Ubuntu 24.04 上把本机 openssl rand -hex 32 的输出填进 embedding.dense.api_key 时,探针返回:

Embedding:      FAIL  volcengine/doubao-embedding-vision-251215 api_base=https://ark.cn-beijing.volces.com/api/v3 dimension=1024 (probe failed: Volcengine embedding failed: Error code: 401 - {'error': {'code': 'AuthenticationError', 'message': 'The API key format is incorrect. ...', 'type': 'Unauthorized'}})
VLM:            PASS  volcengine/doubao-seed-2-0-lite-260428

按量接口用 https://ark.cn-beijing.volces.com/api/v3 和模型 doubao-embedding-vision-251215。方舟 Agent Plan 是另一套:api_base 为 https://ark.cn-beijing.volces.com/api/plan/v3,嵌入模型 doubao-embedding-vision,VLM doubao-seed-2.0-lite,api_key 填 Agent Plan 的密钥。密钥和端点要成对,填错时 Embedding 同样是 401,VLM 仍可能 PASS。Authentication: PASS 只表示配置里有一段字符串,或当前是 dev 模式。改完后再跑 doctor,看 Embedding 那一行。

Q4:doctor 里 Embedding 是 FAIL,错误码 404,ModelNotOpen?

方舟认了这把 API Key,但账号还没开通嵌入模型。Ubuntu 24.04 实测的提示是尚未开通 doubao-embedding-vision-251215。打开 Doubao-Embedding-Vision 完成开通,不要改 ov.conf,再跑一次 doctor。开通后 Embedding 应为 PASS,并带 probe ok (dimension=1024)。

Q5:/health 是 ok,/ready 里 embedding 失败?

存活检查不验证模型密钥。看 ov.conf 里的 provider、model、api_key、api_base 是否仍是占位符,方舟控制台是否已开通对应模型,容器能否访问 ark.cn-beijing.volces.com。改完配置后重启容器,再请求 /ready。

Q6:根密钥拿去调 ov add-resource 失败?

根密钥做管理。读写资源、记忆和技能要用 Studio 用户页给出的用户密钥,写在 ovcli.conf 的 api_key。

Q7:/studio/vikingbot 提示先启用 VikingBot?

OPENVIKING_WITH_BOT 为 0 或未设置时,工作台和 VikingBot 页是下面这样:

工作台打开 viking://,右侧提示当前服务未启用 Agent 对话功能

VikingBot 页提示先启用,命令为 openviking-server --with-bot

把 Compose 里的 OPENVIKING_WITH_BOT 改成 1,执行 docker compose up -d,再刷新。对话模型用 ov.conf 里的 vlm。本文按这个配置打开后,发送「你好,你是谁」能收到回复。若页面仍提示缺少用户密钥,在 bot.ov_server.api_key 填「浏览器首次使用」里的用户密钥,见 VikingBot 配置。

Q8:详情页中文简介里的端口和镜像名对不上?

简介里的端口 8080、镜像名 apecloud/openviking 是另一份说明。拉取用 docker.xuanyuan.run/openviking/openviking:v0.4.23,端口 1933,挂载 /app/.openviking。

Q9:仓库自带的 Compose 示例写的是 ghcr.io?

示例镜像是 ghcr.io/volcengine/openviking,还带 Caddy 的宿主机端口 1934。按本文拉取 docker.xuanyuan.run/openviking/openviking:v0.4.23,浏览器打开 http://服务器IP:1933/studio。详情页:openviking/openviking。

Q10:以前的容器把数据写在 /app/data,升级后目录是空的?

较老的镜像把相对路径 ./data 解析到 /app/data,那个路径在默认挂载之外。停掉旧容器后,用 docker cp 把旧容器里的 workspace 拷出来,再放进现在的宿主机目录 /www/wwwroot/openviking/data/data。已有数据不要直接覆盖。新装 v0.4.23 且从一开始就按本文挂载的,数据就在这次挂载里。

Q11:只想试用,不想自己配模型?

火山引擎有托管的 OpenViking。在控制台创建 API Key 后,服务地址是 https://api.vikingdb.cn-beijing.volces.com/openviking。产品说明见 OpenViking 托管服务。这条地址走托管服务,不用跑本文的 Compose。

Q12:1933 要不要对公网开放?

本文的映射适合本机或内网。要对公网提供服务,先确认根密钥和用户密钥没有泄露,再按部署文档做 HTTPS 与访问控制。不要把未加访问控制的 1933 直接暴露到公网。

Q13:拉取报 no matching manifest?

v0.4.23 提供 linux/amd64 与 linux/arm64。到标签页核对架构。32 位 ARM 不在这两套清单里。

Q14:备份怎么做?

先 docker compose stop openviking,再打包宿主机目录 /www/wwwroot/openviking/data(含 ov.conf 和 data/)。恢复时停容器,把目录放回原处,再 docker compose start openviking。ov.conf 里有密钥,备份文件不要放到公开位置。


命令速查

docker pull docker.xuanyuan.run/openviking/openviking:v0.4.23

cd /www/wwwroot/openviking
docker compose up -d
docker compose ps
docker compose logs -f --tail 100 openviking
curl -sS http://127.0.0.1:1933/health
curl -sS http://127.0.0.1:1933/ready

docker exec openviking ov health
docker compose restart openviking
docker compose down

没有 Compose 时用「备选:docker run」里的命令。浏览器打开 http://服务器IP:1933/studio。


延伸阅读

资源链接
openviking/openviking 镜像页https://xuanyuan.cloud/zh/r/openviking/openviking
openviking/openviking 概览https://xuanyuan.cloud/r/openviking/openviking
openviking/openviking 标签列表https://xuanyuan.cloud/r/openviking/openviking/tags
Docker Hub · openviking/openvikinghttps://hub.docker.com/r/openviking/openviking
Docker Hub 标签https://hub.docker.com/r/openviking/openviking/tags
GitHub · volcengine/OpenVikinghttps://github.com/volcengine/OpenViking
Release v0.4.23https://github.com/volcengine/OpenViking/releases/tag/v0.4.23
部署文档https://docs.openviking.ai/en/guides/03-deployment
模型配置https://docs.openviking.ai/en/guides/01-configuration
火山引擎模型购买说明https://docs.openviking.ai/zh/guides/02-volcengine-purchase-guide
开通 Doubao-Embedding-Visionhttps://console.volcengine.com/ark/region:cn-beijing/model/detail?name=doubao-embedding-vision
VikingBot 配置https://docs.openviking.ai/en/guides/17-vikingbot
认证https://docs.openviking.ai/en/guides/04-authentication
导入与检索快速开始https://docs.openviking.ai/en/getting-started/02-quickstart
OpenViking 官网https://openviking.ai
轩辕镜像使用手册https://xuanyuan.cloud/usage

阅读原文

  • 轩辕镜像官方博客:https://xuanyuan.cloud/blog/openviking-docker-deploy
面向干净核心的并行扩展:SAP BTP 上的 side-by-side extensions 全面解读 摘要: SAP的side-by-side extensions是一种与核心系统解耦的云原生扩展模式,通过API和事件驱动实现与SAP S/4HANA等核心系统的松耦合集成。该模式支持独立升级、弹性扩展和高效创新,是SAP官方推荐的clean core关键实现路径。其典型架构包括接口层(OData/REST API、事件通道)、运行层(Cloud Foundry/Kyma/CAP框架)和体验层(Fiori/UI5)。适用场景包括需快速迭代、复用云服务或服务外部用户的业务扩展。实施时需关注安全治理(如XSUAA 阅读详情

相关推荐

华为交换机链路聚合对接思科交换机链路聚合故障

2台华为交换机采用堆叠方式与思科交换机之间使用链路聚合,华为交换机与cisco交换机链路捆绑接口频繁UP/DOWN,业务中断。

网络工程师日常的博客 2115

OpenViking:面向AI Agent的上下文文件系统范式

在AI Agent开发中,‘上下文管理’已成为核心瓶颈——它既非传统数据库擅长的结构化事务,也非向量数据库专注的相似性检索,而是一种动态、多源、多生命周期的认知状态组织问题。其本质是将对话记忆、工具结果、用户偏好等异构信息,按语义关系进行可追溯、可组合、可治理的编排。OpenViking提出‘文件系统范式’,以路径层级表达上下文归属(如/session/step/),以元数据承载业务语义(如order_id、source),以ContextQL实现跨源声明式查询,并通过ContextBridge无缝集成Po

weixin_30271335的博客 414

Sen+MK趋势分析

Sen+MK趋势分析

地理研究与算法的博客 4万+

AI Agent上下文数据库平台Docker化部署实战

AI Agent的上下文管理是多轮对话、RAG增强与状态持久化的技术基础,其核心依赖结构化存储(如PostgreSQL)、缓存协调(Redis)和向量检索(Milvus)三大能力。本文围绕Agent上下文数据库平台的工程落地,深入解析如何通过Docker Compose实现高可用、可复现、生产就绪的容器化编排——涵盖pgvector扩展配置、Redis TLS加密连接、Milvus standalone集群模式选型,以及Nginx反向代理的安全加固。方案直击开发者痛点:避免SQLite锁表、解决容器间网络发

weixin_32183107的博客 247

tcllib2.0 package - csv

tcl lib 的csv库

shin 859

从零到一:YOLOv8在边缘设备上的轻量化部署实战

本文详细介绍了YOLOv8在边缘设备上的轻量化部署实战,涵盖模型优化、TensorRT加速、剪枝与知识蒸馏等关键技术。通过工业质检和智能门禁项目案例,展示了如何将YOLOv8高效部署到树莓派、Jetson Nano等资源受限设备,显著提升推理速度和降低内存占用。文章还提供了动态分辨率调整、多模型级联部署等实用技巧,助力开发者实现边缘AI应用的高效落地。

weixin_29040367的博客 377

Docker部署AI Agent上下文数据库:SQLite+pgvector混合架构实战

AI Agent上下文管理是大模型应用落地的核心基础设施,其本质是融合语义检索、关系推理与时间感知的多维查询系统。技术原理上需兼顾低延迟向量相似度计算、强一致的元数据事务处理,以及跨维度(session/user/type/time)的联合过滤能力。这类系统的技术价值在于显著降低Agent的记忆丢失率、提升多轮对话连贯性,并支撑可审计、可回溯的推理链路。典型应用场景包括智能客服记忆增强、企业知识库问答、自动化文档分析等需要长期上下文保真与动态关系建模的领域。本文聚焦生产就绪级部署,详解SQLite元数据层与

weixin_34116482的博客 138

基于FreeSwitch与SIP UA的蓝牙电话坐席系统实战部署

本文详细介绍了如何基于FreeSwitch开源软交换平台,结合SIP UA软电话与蓝牙电话App,在局域网内搭建一套低成本、自主可控的电话坐席系统。文章提供了从环境准备、FreeSwitch安装配置、用户与拨号计划创建,到SIP软电话测试和蓝牙设备接入的完整实战部署流程,并给出了关键优化与排坑指南,适合小微团队或个人开发者构建内部通讯工具。

zeta9的博客 542

dsh-mnemon 10分钟快速上手:从安装DeepSeek Harness到保存第一条记忆

dsh-mnemon 是 DeepSeek Harness(DSH)的可组合记忆插件,提供分层记忆与自进化技能,让 AI 助手跨会话记住偏好、项目档案与长期事实。本文带你从一台空白电脑出发,10 分钟内完成安装,并在对话中保存下第一条记忆。 ## dsh-mnemon 是什么? dsh-mnemon 给 DSH 加上一套**可见、可组合的记忆系统**,核心分三种记忆: | 记忆层 | 存什么

gitblog_00886的博客 467

【WRF工具】WRF 模型输出可视化工具 RIP4

【WRF工具】WRF 模型输出可视化工具 RIP4

WW、forever的博客 1593

Windows 上安装 OpenCode 完全指南:从零到成功,人人能看懂!

跟着这篇教程,你应该已经成功在 Windows 上安装并运行了 OpenCode。步骤操作要点1安装 Chocolatey必须以管理员身份运行 PowerShell2安装 OpenCode3验证安装关闭并重新打开终端,输入4进入项目目录必须是 Git 仓库(git init5配置模型输入/connect,输入 API Key6开始使用输入问题测试最后的小建议如果没有 API Key,可以从 DeepSeek 或 Kimi 开始,有免费额度初次使用建议先在简单项目上测试。

专注于编程、AI、人工智能等多个领域内容研究和分析 3872

Playwright 浏览器装在哪?一条 PLAYWRIGHT_BROWSERS_PATH 改安装位置

Playwright 默认把浏览器二进制装进系统缓存目录,装几个浏览器就是几百 MB,升级 Playwright 后还得重新下载。用 `PLAYWRIGHT_BROWSERS_PATH` 这个环境变量,你可以把 Chromium、Firefox、WebKit 装到任意目录,甚至让它们随项目 `node_modules` 一起走。本文所有命令均依据仓库文档 [docs/src/browsers.md

gitblog_02663的博客 789

DB文件在编程中的作用及示例代码

通过使用DB文件,我们可以实现数据的持久化存储,并能够高效地进行数据的增删改查操作。在本文中,我们以SQLite数据库为例,演示了如何使用Python语言创建和操作DB文件的示例代码。在实际的编程中,我们可以根据具体的需求和使用的数据库系统来进行更复杂的操作和优化。通过使用DB文件,我们可以实现数据的持久化存储,确保数据在程序关闭后也能被保留,并且能够高效地进行数据检索和更新。在本文中,我们将探讨DB文件的作用,并提供一些示例代码展示如何在编程中使用DB文件。上述代码中,我们使用SQLite提供的。

CodeSpark的博客 1819

wiliwili 游戏机 B 站客户端:Switch、PSVita、PS4 全平台安装与使用教程

wiliwili 是一款游戏机 B 站客户端,支持 Nintendo Switch、PSVita、PS4、Windows、macOS、Linux。登录一次账号,追番、直播、弹幕、评论全都能在游戏机上用,播放历史还能跨设备接续。 ## 这应用适合谁,不适合谁 它适合想在电视前或掌机上用手柄刷 B 站的人:主战场是 Switch、PSVita、PS4,Windows 7+、macOS 10.11+

gitblog_00725的博客 394

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

GPUStack 用户管理与角色权限指南:Admin/User 角色、默认管理员引导与账号全生命周期操作

GPUStack 是一款面向高性能 AI 模型推理(vLLM、SGLang)与按需 SSH GPU 实例的 GPU 集群管理器,其 Web 控制台与 API 都建立在一套简洁的用户体系之上。本文以官方用户管理文档为主体,结合仓库源码(路由、Schema、启动引导逻辑与密码策略实现),系统讲解 GPUStack 的 Admin/User 双角色模型、默认管理员引导流程、密码复杂度策略,以及创建、编辑

gitblog_00154的博客 155

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

OpenClaw 天气查询技能实战:基于 wttr.in 与 Open-Meteo 的免密钥天气获取方案

天气查询是个人 AI 助手中最常见的实用场景之一。OpenClaw(中文社区版)自带了一个「天气查询」技能,它**不需要申请任何 API 密钥**,仅依赖系统自带的 `curl` 命令,即可完成当前天气、温湿度、风速风向乃至完整预报的获取,并提供了面向程序化解析的 JSON 备用接口。本文以仓库中的 [skills/weather/SKILL.md](https://link.gitcode.co

gitblog_00787的博客 248

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

从瀑布到流水线:DevOps 入门与 GitLab + Jenkins + Docker 落地实践

先看清软件开发生命周期(SDLC)的全貌,再对比瀑布模型与敏捷开发,随后进入持续集成与 CI/CD 的机制内核;最后落到实操——在 GitLab、Jenkins、Docker 组成的四机实验环境里,走完源码托管、自动化构建、镜像封装与远程部署,直到参数化构建与版本回滚。概念与命令并重,既是入门地图,也是操作手册。

年轻的时候很穷,经过我多年的努力,终于不再年轻。 199

Docker系列---Dockerfile镜像文件

从零构建属于自己的 Docker 镜像

努力向上的大学生一枚⭐ 123

docker 基础教程

下载好之后如果 pull 镜像失败,可以进入配置镜像源。完成之后:sudo systemctl restart docker重启生效(作者用的是 Ubuntu,其它不同版本系统可能会有差异,有需要可以 AI search 一下)

xuxiaohei222的博客 244

Docker 部署 WordPress+MySQL 高可用架构

点「安装 WordPress」

一直在努力学习的菜鸟 212

Docker更新SSL证书后容器仍读旧文件:单文件挂载与目录挂载排查

宿主机证书已替换,容器里却还是旧内容?区分单文件绑定挂载、目录内替换和服务进程加载,再检查Certbot live软链接的目标是否可达。用无网络隔离容器复现文件可见性,不把读到新文件当成HTTPS已生效。

谁呀!的博客 421

如何在本地 Docker 容器中运行 Redis,并使用 Redis Insight 和 Redis CLI 进行管理

本文教程介绍了如何使用Docker本地运行Redis服务器与RedisInsight,实现数据的可视化管理。通过RedisInsight和RedisCLI,学习了对哈希、字符串、列表、集合、有序集、流及JSON等数据类型的增删改查(CRUD)操作,涵盖HSET、GET、SADD、XADD等核心命令,帮助开发者高效掌握Redis基本用法。

csdn_aspnet的专栏,请点击博客主页右上角三个点中的私信联系 248

从零开始用 Docker 部署 Hoppscotch:自建 API 调试平台的完整教程

Hoppscotch是一款开源、轻量、跨平台的API调试工具,支持HTTP、WebSocket、GraphQL等多协议,具备接口调试、文档生成、Mock模拟、团队协作等功能。基于Docker可快速部署,支持私有化自托管,资源占用低,完全离线使用,数据安全可控。相比Postman等工具,其开源免费、无功能限制,适合个人与企业研发全周期使用。

专注大数据、云计算、人工智能、机器人领域技术传播 279

Docker跑Java踩了个大坑,容器显示8核实际只用到1核

小坏分享真实踩坑:Docker中Java应用因未配置容器感知,导致8核机器仅用1核。根源是JVM误读CPU核心数,引发GC、线程池等性能严重缩水。解决方案:显式添加-XX:+UseContainerSupport -XX:ActiveProcessorCount=8,并合理设置堆内存(如3g/4g容器)、启用G1GC及优化参数。附生产级Dockerfile模板,确保性能不“偷跑”。

小坏说Java,一个专注Java微服务架构的实战,Java全栈教程,SpringBoot, SpringCloud微服务到分布式、高并发架构,大数据开发,运维实战,K8S、Docker容器为一体的教程,结合企业级内部的技术栈学习 377

Dify 1.18 本地部署实战:Windows + WSL2 + Docker,从零跑到本地可用

你想在自己电脑上跑一套 Dify:提示词编排、知识库、Agent 流程都放本地,数据不出内网,也不用买云主机。真动手时会卡在四个地方:Windows 的 80 端口被系统占着、默认向量库镜像拉不动、容器起来又反复重启、重启电脑后打不开。本文按动手顺序给一条跑通的路线:WSL2 装 Ubuntu(不需要管理员权限)、Docker 换能用的镜像源、`.env` 只改 4 项、15 个容器全绿、管理员建好,最后附 7 个实测报错和一套开机自启方案。装完你就有了一个能自己建应用、接国产模型、把网页发给同

Blockbuster-drug 829

Docker概念和镜像管理

容器属于,依靠Linux内核Namespace(做隔离)、Cgroups(做资源限制)实现。把应用、依赖库、配置、环境变量打包,在宿主机上隔离运行。

2503_92430124的博客 375
上一篇: Docker 部署 TeslaMate:轻松搭建特斯拉车辆数据记录平台
下一篇: Docker 部署 WordPress:轻松搭建开源内容管理平台
java_logo
博客等级 码龄18年 325粉丝 236原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值