news 2026/9/20 11:40:43

runsc 装好 Docker 不识别,Claude Code 跑排查任务:Key 用 TaoToken

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
runsc 装好 Docker 不识别,Claude Code 跑排查任务:Key 用 TaoToken

1. runsc 装好了 Docker 却不认,问题到底卡在哪

你在 Ubuntu 上按教程把 runsc 下载到 /usr/local/bin,也写了 /etc/docker/daemon.json,systemctl restart docker也执行了,结果docker info里 Runtime 列表压根没有 runsc,docker run --runtime=runsc直接报unknown runtime。这个场景我遇到过不止一次,尤其在 gVisor 沙箱 + 容器 + 远程浏览器访问这条链路上,runsc 不识别会让后面 Ubuntu 桌面容器、VNC、NoVNC 全部起不来。

这篇用排障视角走一遍:先让 Claude Code 帮你逐项核对 runsc 路径、daemon.json 的 runtimes 字段、Docker 重启是否真的生效,再回到 gVisor 运行 Ubuntu 容器并通过远程浏览器访问的完整流程。Key 从 TaoToken 拿,Base URL 填https://taotoken.net/api,真正执行排查动作的是 Claude Code,TaoToken 只负责提供可用的模型调用入口。

适合谁看:已经在 Ubuntu 上装了 Docker、想用 gVisor 做沙箱隔离、准备跑带 GUI 的 Ubuntu 容器并远程浏览器访问,但被 runsc 不识别卡住的人。下面每一步都能直接复制执行,报错也能对照排查。

2. 先拿 TaoToken Key,把 Claude Code 接到排查任务上

排障这件事最怕人肉一行行猜。我的做法是让 Claude Code 当“排查执行器”:把 daemon.json 内容、docker info报错、runsc 路径检查结果一起丢给它,让它按清单核对。前提是 Claude Code 能正常调用模型,这里用 TaoToken 的 Key。

先到 TaoToken 官网创建 Key:

# 打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 注册并创建 API Key # 拿到形如 sk-xxxx 的 Key 后,配置 Claude Code 的 Base URL export ANTHROPIC_BASE_URL="https://taotoken.net/api" export ANTHROPIC_API_KEY="sk-你的Key"

如果你用的是 Claude Code 的配置文件方式,可以写进环境变量或对应配置项,核心就是 Base URL 指向https://taotoken.net/api,Key 用刚创建的那串。配好后跑一句简单对话确认链路通:

claude -p "回复 ok 即可"

返回正常,说明 Claude Code 已经能调用模型。接下来所有排查指令都通过它执行。需要管理多个 Key 或看用量,可以进控制台:

# Key 管理:https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite # 新建/查看 Key:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite

注意:TaoToken 只提供 Key 和模型调用入口,runsc 路径核对、daemon.json 校验、Docker 重启验证这些动作,都是 Claude Code 在你自己机器上执行的。别把两者搞混。

3. 可复制配置:runsc 路径 + daemon.json + 重启

先把基础配置摆正,这是后面让 Claude Code 排查的输入。第一步下载 runsc 并放到系统路径:

curl -Lo runsc https://storage.googleapis.com/gvisor/releases/release/latest/x86_64/runsc chmod +x runsc sudo mv runsc /usr/local/bin/

确认路径和可执行权限,这一步经常被忽略:

which runsc ls -l /usr/local/bin/runsc /usr/local/bin/runsc --version

如果which runsc没输出,说明 PATH 或文件位置有问题,Docker 自然找不到。接着写 daemon.json,注意 runtimes 字段的层级:

sudo tee /etc/docker/daemon.json <<'EOF' { "runtimes": { "runsc": { "path": "/usr/local/bin/runsc" } } } EOF

写完先做 JSON 语法校验,很多人栽在多余逗号或中文引号上:

sudo python3 -m json.tool /etc/docker/daemon.json

能正常打印格式化 JSON 才算合法。然后重启 Docker 并确认服务真的起来了:

sudo systemctl daemon-reload sudo systemctl restart docker sudo systemctl status docker --no-pager

到这里配置层面就齐了。把上面这些命令的输出收集起来,下一步直接喂给 Claude Code 做核对。

4. 让 Claude Code 跑 gVisor runsc 运行时排查任务

这一步是核心。把 daemon.json 内容、docker info的 Runtime 段、runsc 路径检查结果拼成一段提示,交给 Claude Code。可以这样组织:

claude -p " 你是 Docker 运行时排查助手。请逐项核对以下信息,找出 runsc 不被识别的原因: 1. runsc 路径是否为 /usr/local/bin/runsc,是否有可执行权限 2. /etc/docker/daemon.json 的 runtimes 字段是否正确,JSON 是否合法 3. systemctl restart docker 是否成功,docker 服务是否 active 4. docker info 的 Runtimes 列表是否包含 runsc 以下是现场信息: --- daemon.json --- $(sudo cat /etc/docker/daemon.json) --- runsc 检查 --- $(which runsc; ls -l /usr/local/bin/runsc; /usr/local/bin/runsc --version 2>&1) --- docker info Runtimes --- $(docker info 2>&1 | grep -A5 -i runtime) --- docker 服务状态 --- $(systemctl is-active docker) 请给出结论和修复命令。 "

Claude Code 会按清单逐项比对,常见结论有三类:路径写错(比如写成了 /usr/bin/runsc)、daemon.json 里 runtimes 拼成了 runtime、或者 Docker 重启失败导致配置没加载。拿到结论后按它给的命令修,再重新验证。

验证 runsc 是否被识别,最直接的就是看docker info

docker info | grep -i runtime

正常应该能看到runsc: /usr/local/bin/runsc这样的条目。然后跑一个最小容器确认运行时可用:

docker run --rm --runtime=runsc hello-world

能正常输出 Hello from Docker,说明 gVisor 沙箱运行时已经生效。这一步过了,再往下做 Ubuntu 桌面容器才有意义。

5. 跑通 Ubuntu 容器 + 远程浏览器访问链路

runsc 识别之后,回到 gVisor 跑 Ubuntu 容器并通过远程浏览器访问的完整流程。启动带 VNC 的 Ubuntu 容器:

docker run -d -it --runtime=runsc --name ubuntu-vnc -p 5901:5901 -e USER=root ubuntu bash

进容器装桌面和 VNC:

docker exec -it ubuntu-vnc bash apt update && apt install -y xfce4 xfce4-goodies tightvncserver vncserver vncserver -kill :1 echo '#!/bin/bash xrdb $HOME/.Xresources startxfce4 &' > ~/.vnc/xstartup chmod +x ~/.vnc/xstartup vncserver -geometry 1280x720

宿主机装 NoVNC 并启动:

sudo apt install -y novnc novnc_server --vnc localhost:5901 --listen 6080

浏览器访问http://<服务器IP>:6080/vnc.html,输入 VNC 密码就能看到 gVisor 沙箱里的 Ubuntu 桌面。如果这一步容器起不来,多半还是 runsc 运行时没生效,回到第 4 步重新核对。

检查项期望结果常见异常
runsc 路径/usr/local/bin/runsc 可执行路径写错、无执行权限
daemon.jsonruntimes.runsc.path 正确字段拼错、JSON 非法
docker 服务active (running)重启失败、配置未加载
docker infoRuntimes 含 runsc列表为空
容器启动--runtime=runsc 成功unknown runtime

6. 本篇常见错排查

报错一:unknown runtime: runsc先看docker info有没有 runsc。没有就查 daemon.json 的 runtimes 字段层级,确认是runtimes不是runtime,path 指向真实文件。改完必须systemctl restart docker

报错二:daemon.json 改了但没生效。多半是 JSON 语法错误导致 Docker 启动时忽略了配置。用python3 -m json.tool校验,或看journalctl -u docker有没有解析报错。

报错三:runsc 路径对但 Docker 找不到。检查文件权限,chmod +x是否执行;再确认没有多个 runsc 版本冲突,which -a runsc看全部路径。

报错四:容器起来了但浏览器访问不了。确认 6080 端口放行、NoVNC 进程在跑、VNC 密码正确。gVisor 沙箱内网络和普通容器略有差异,端口映射要写全。

报错五:Claude Code 排查时读不到现场信息。确认 Base URL 是https://taotoken.net/api、Key 有效。链路不通时先跑claude -p "ok"验证。需要换 Key 或看文档:

# 接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite # 模型对话验证:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_content=model&utm_campaign=rewrite

如果你要长期跑编码或 Agent 类任务,反复手动配 Key 比较烦,可以看 Coding Plan:

# https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite

排查顺序建议固定成:runsc 路径 → daemon.json 合法性 → Docker 服务状态 → docker info 运行时列表 → 最小容器验证。这五步走完,runsc 不识别基本都能定位。把现场输出丢给 Claude Code 跑一遍清单核对,比人肉猜快得多。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/20 11:40:25

OpenMythos深度解析:用知识图谱与AIGC构建神话数据底座

最近在调研知识图谱和AIGC落地方案时&#xff0c;OpenMythos这个名字反复出现。粗略一看&#xff0c;它像是一个把希腊、北欧、中国、印度等地的神话传说统一建模的开源项目&#xff1b;稍微深入一点就会发现&#xff0c;它的野心比“神话百科”大得多——它想做的是给机器用的…

作者头像 李华
网站建设 2026/9/20 11:40:13

aarch64 Qt5.12.12 交叉编译:sysroot 与 mkspec

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/20 11:37:56

xiaomusic在线搜索配置:4步配好小爱搜全网

xiaomusic在线搜索配置&#xff1a;4步配好小爱搜全网 【免费下载链接】xiaomusic 使用小爱音箱播放音乐&#xff0c;音乐使用 yt-dlp 下载。 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic xiaomusic 的在线搜索给小爱音箱接了一根在线曲库的水管&…

作者头像 李华
网站建设 2026/9/20 11:36:33

模型报错 401?OpenClaw 的 Base URL 指向 TaoToken 的 api

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/20 11:36:02

Dify 三部曲收官:Cherry Studio 跑 MCP fetch,Key 用 TaoToken

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华