使用 Docker 部署一款开源WEB版claude code教程
作者:admin · 更新于 2026-08-31 10:37:44
ClaudeCN 是一个面向中文用户的 Claude Web 工作台。通过 Docker 部署后,可以直接在浏览器中访问 Web 界面,不需要在宿主机单独安装 Node.js 或 Bun。
本文记录 ClaudeCN 的 Docker 安装过程,方便后续重新部署或迁移环境。
项目地址:cxzjoy/claude-cn
本文安装命令根据实际使用环境整理,使用的镜像为cxzjoy/claude-cn:latest如果是不支持avx2的老款cpu请使用oldbun镜像标签。
一、安装前准备
开始安装前,需要准备以下环境:
- 一台已经安装 Docker 的服务器或 NAS;
- Docker 服务正常运行;
- 一个可用的
CLAUDE_H5_TOKEN; - 如果需要使用 WebDAV,还需要准备 WebDAV 用户名和密码;
- 确保主机的
3456端口没有被其他服务占用。
可以先执行下面的命令,确认 Docker 是否正常:
docker --version
docker ps
如果能够正常显示 Docker 版本和容器列表,说明 Docker 环境已经准备完成。
二、使用 Docker 启动 ClaudeCN
执行下面的命令创建并启动 ClaudeCN 容器:
docker run -d --name claude-cn -p 3456:3456 -v claude-data:/data -v /var/run/docker.sock:/var/run/docker.sock -v /:/host --pid=host -e CLAUDE_H5_TOKEN=*** -e WEBDAV_USER=*** -e WEBDAV_PASSWORD=*** cxzjoy/claude-cn:latest
执行成功后,Docker 会在后台启动名为 claude-cn 的容器。
如果本地还没有对应镜像,Docker 通常会自动拉取镜像。也可以提前手动拉取:
docker pull cxzjoy/claude-cn:latest
三、安装命令参数说明
1. 后台运行容器
-d
让容器以后台模式运行。命令执行后会立即返回,不会一直占用当前终端。
2. 指定容器名称
--name claude-cn
将容器名称设置为 claude-cn,后续查看日志、重启或停止容器时,可以直接使用这个名称。
例如:
docker logs claude-cn
docker restart claude-cn
docker stop claude-cn
3. 映射 Web 访问端口
-p 3456:3456
端口格式为:
主机端口:容器端口
这里表示将主机的 3456 端口映射到容器的 3456 端口。容器启动后,可以通过以下地址访问:
http://服务器IP:3456
如果 ClaudeCN 部署在本机,也可以访问:
http://localhost:3456
4. 持久化数据
-v claude-data:/data
创建并挂载名为 claude-data 的 Docker 数据卷,将容器中的 /data 目录保存到独立卷中。
这样即使删除并重新创建容器,保存在 /data 中的数据仍然可以保留。可以使用下面的命令查看数据卷:
docker volume ls
查看 claude-data 的详细信息:
docker volume inspect claude-data
5. 挂载 Docker Socket
-v /var/run/docker.sock:/var/run/docker.sock
将宿主机的 Docker Socket 挂载到容器中,使 ClaudeCN 能够调用宿主机的 Docker 服务。
这类配置通常用于容器内管理 Docker 容器、创建开发环境或执行相关容器操作。
不过需要特别注意:Docker Socket 权限很高。获得该 Socket 访问权限的容器,通常可以操作宿主机上的其他容器,甚至间接获得宿主机的高权限。因此,不建议将该服务直接暴露到公网。
6. 挂载宿主机根目录
-v /:/host
将宿主机的根目录 / 挂载到容器的 /host 目录。
挂载后,容器内可以通过 /host 访问宿主机文件,例如:
/host/etc
/host/var
/host/home
/host/opt
该配置方便在容器中操作宿主机文件和项目目录,但权限范围非常大。如果容器或 Web 服务存在安全漏洞,可能导致宿主机文件被读取或修改。
7. 共享宿主机进程空间
--pid=host
让容器与宿主机共享进程命名空间。启用后,容器可以看到宿主机上的进程。
这对于某些需要监控或管理宿主机进程的功能比较方便,但会降低容器与宿主机之间的隔离程度。
8. 配置 H5 登录令牌
-e CLAUDE_H5_TOKEN=***
通过环境变量设置 ClaudeCN 的 H5 登录令牌。访问 Web 界面时,需要使用对应令牌进行登录。
实际使用时,应将 *** 替换成自己的令牌,例如:
-e CLAUDE_H5_TOKEN=your-secret-token
令牌应避免使用过于简单的内容,也不要发布到博客、截图、GitHub 仓库或公开聊天中。
9. 配置 WebDAV 用户名
-e WEBDAV_USER=***
设置 WebDAV 服务的登录用户名。
例如:
-e WEBDAV_USER=admin
10. 配置 WebDAV 密码
-e WEBDAV_PASSWORD=***
设置 WebDAV 服务的登录密码。
例如:
-e WEBDAV_PASSWORD=change-this-password
WebDAV 用户名和密码同样属于敏感信息,建议使用独立且复杂的密码。
四、访问 ClaudeCN
容器启动后,先检查运行状态:
docker ps
如果看到类似下面的内容,说明容器正在运行:
claude-cn cxzjoy/claude-cn:latest ... Up ...
然后在浏览器中打开:
http://服务器IP:3456
例如服务器局域网 IP 为 192.168.1.100,则访问:
http://192.168.1.100:3456
进入页面后,使用启动命令中配置的 CLAUDE_H5_TOKEN 登录。
如果页面无法打开,可以依次检查:
docker ps -a
docker logs claude-cn
查看容器是否已经退出,以及启动日志中是否存在端口、权限或配置错误。
五、常用管理命令
查看容器状态
docker ps
查看包括已停止容器在内的完整列表:
docker ps -a
查看运行日志
docker logs claude-cn
持续查看实时日志:
docker logs -f claude-cn
按 Ctrl+C 可以退出日志查看,不会停止容器。
重启容器
docker restart claude-cn
停止容器
docker stop claude-cn
启动已停止的容器
docker start claude-cn
查看容器详细配置
docker inspect claude-cn
六、如何更新镜像
更新前先拉取最新镜像:
docker pull cxzjoy/claude-cn:latest
如果只是重新启动原来的容器,容器仍然使用原先创建时绑定的镜像版本。要使用新拉取的镜像,通常需要删除旧容器后重新创建。
删除容器前,先停止容器:
docker stop claude-cn
docker rm claude-cn
然后重新执行本文第二节中的启动命令:
docker run -d --name claude-cn -p 3456:3456 -v claude-data:/data -v /var/run/docker.sock:/var/run/docker.sock -v /:/host --pid=host -e CLAUDE_H5_TOKEN=*** -e WEBDAV_USER=*** -e WEBDAV_PASSWORD=*** cxzjoy/claude-cn:latest
由于数据保存在 claude-data 卷中,重新创建容器时继续挂载同一个卷即可。
七、网络模式选择
本文使用的是端口映射方式:
-p 3456:3456
也就是 Docker 默认的 bridge 网络模式。
相比 --network=host,端口映射方式具有以下特点:
- 网络隔离更清晰;
- 只暴露明确指定的端口;
- 端口管理更加直观;
- 不容易与宿主机上的其他服务产生端口冲突。
对于 ClaudeCN 这类通过 Web 端口访问的服务,使用端口映射通常已经足够,没有必要额外使用 host 网络模式。
八、安全注意事项
本文提供的启动命令包含以下高权限配置:
-v /var/run/docker.sock:/var/run/docker.sock
-v /:/host
--pid=host
它们会显著降低容器隔离性。特别是 Docker Socket 和宿主机根目录挂载,意味着 ClaudeCN 容器具备较强的宿主机访问和管理能力。
因此建议:
- 不要将
3456端口直接暴露到公网; - 如果需要远程访问,优先通过 VPN、内网穿透或带认证的反向代理;
- 定期备份
claude-data数据卷; CLAUDE_H5_TOKEN、WEBDAV_USER和WEBDAV_PASSWORD不要写入公开仓库;- 不要在博客文章中使用真实令牌和密码;
- 定期关注镜像更新和项目安全公告;
- 仅在信任镜像来源的前提下使用这些高权限挂载。
发布文章时,建议将命令中的敏感值继续保留为占位符:
-e CLAUDE_H5_TOKEN=***
-e WEBDAV_USER=***
-e WEBDAV_PASSWORD=***
部署时再替换成自己的实际配置。
九、总结
通过 Docker 部署 ClaudeCN 的核心步骤比较简单:
准备 Docker 环境
↓
准备 H5 Token 和 WebDAV 配置
↓
执行 docker run 命令
↓
访问 http://服务器IP:3456
↓
使用 CLAUDE_H5_TOKEN 登录
本文使用的 Docker 镜像是:
cxzjoy/claude-cn:latest
数据通过 claude-data Docker 卷持久化,后续更新镜像后重新创建容器即可继续使用原有数据。
需要注意的是,这套启动参数拥有较高的宿主机访问权限,更适合部署在个人 NAS、内网服务器或受控环境中。上公网前,应额外配置访问认证、HTTPS 和网络访问限制。
非特殊说明,本文版权归 admin 所有,转载请注明出处。
本文标题:使用 Docker 部署一款开源WEB版claude code教程
Comments
评论