boinc/client!Docker Pulls !Docker Stars !Docker Cloud Build Status
BOINC(Berkeley Open Infrastructure for Network Computing,伯克利开放式网络计算平台)是一个开源分布式计算框架,允许用户贡献闲置计算资源参与科学研究项目(如蛋白质折叠、气候变化模拟等)。本镜像为官方BOINC客户端的Docker化版本,旨在简化BOINC客户端的部署与管理,支持在容器环境中高效运行分布式计算任务。
boinccmd命令行工具远程控制| 标签 | 说明 |
|---|---|
latest, base-ubuntu | 基于Ubuntu的基础版BOINC客户端,所有x86-64镜像均以此为基础 |
base-alpine | 基于Alpine的轻量版(注意:Alpine使用musl库,部分项目可能不兼容) |
amd | 支持AMD GPU的客户端(需主机安装ROCm驱动) |
intel | 支持Intel GPU的客户端(支持Broadwell及以上CPU集成显卡) |
intel-legacy | 支持旧款Intel GPU(Sandybridge/Ivybridge/Haswell CPU集成显卡) |
multi-gpu | 同时支持Intel GPU与NVIDIA GPU的客户端 |
nvidia | 支持NVIDIA GPU(CUDA/OpenCL)的客户端(需主机安装NVIDIA驱动及原生GPU支持) |
virtualbox | 支持VirtualBox项目的客户端(需主机安装virtualbox-dkms包) |
| 标签 | 说明 |
|---|---|
arm32v7 | 适用于ARMv7 32位设备(如树莓派3) |
arm64v8 | 适用于ARMv8 64位设备(如树莓派4/5) |
以下命令启动基础版BOINC客户端(适用于CPU计算项目):
shdocker run -d \ --name boinc \ --net=host \ --pid=host \ -v /opt/appdata/boinc:/var/lib/boinc \ # 持久化存储路径(主机路径可自定义) -e BOINC_GUI_RPC_PASSWORD="123" \ # 设置GUI RPC密码(远程连接需使用) -e BOINC_CMD_LINE_OPTIONS="--allow_remote_gui_rpc" \ # 允许远程GUI连接 boinc/client
文件 > 选择计算机...127.0.0.1)BOINC_GUI_RPC_PASSWORD环境变量设置的密码(如上例中的123)!BOINC Manager连接示意图
本地控制(在容器所在主机执行):
shdocker exec boinc boinccmd <命令参数>
示例:查看任务状态
docker exec boinc boinccmd --get_tasks
远程控制(从其他主机执行):
shdocker run --rm boinc/client boinccmd --host <主机IP> --passwd <密码> <命令参数>
示例:暂停所有任务
docker run --rm boinc/client boinccmd --host 192.168.1.100 --passwd 123 --suspend_all
shdocker run -d \ --name boinc \ --device /dev/dri:/dev/dri \ # 挂载GPU显示设备 --device /dev/kfd:/dev/kfd \ # 挂载AMD KFD设备 --net=host \ --pid=host \ --group-add video \ # 添加video用户组,获取GPU访问权限 -v /opt/appdata/boinc:/var/lib/boinc \ -e BOINC_GUI_RPC_PASSWORD="123" \ -e BOINC_CMD_LINE_OPTIONS="--allow_remote_gui_rpc" \ boinc/client:amd
shdocker run -d \ --name boinc \ --device /dev/dri:/dev/dri \ # 挂载GPU显示设备 --net=host \ --pid=host \ -v /opt/appdata/boinc:/var/lib/boinc \ -e BOINC_GUI_RPC_PASSWORD="123" \ -e BOINC_CMD_LINE_OPTIONS="--allow_remote_gui_rpc" \ boinc/client:intel
shdocker run -d \ --name boinc \ --gpus all \ # 启用所有GPU(或指定GPU,如"device=0") --net=host \ --pid=host \ -v /opt/appdata/boinc:/var/lib/boinc \ -e BOINC_GUI_RPC_PASSWORD="123" \ -e BOINC_CMD_LINE_OPTIONS="--allow_remote_gui_rpc" \ boinc/client:nvidia
virtualbox-dkms包,且版本与容器内VirtualBox版本完全一致(主版本.次版本.补丁版本)shdocker run -d \ --name boinc \ --device=/dev/vboxdrv:/dev/vboxdrv \ # 挂载VirtualBox驱动设备 --net=host \ --pid=host \ -v /opt/appdata/boinc:/var/lib/boinc \ -e BOINC_GUI_RPC_PASSWORD="123" \ -e BOINC_CMD_LINE_OPTIONS="--allow_remote_gui_rpc" \ boinc/client:virtualbox
shdocker run -d \ --name boinc \ --net=host \ --pid=host \ -v /opt/appdata/boinc:/var/lib/boinc \ -e BOINC_GUI_RPC_PASSWORD="123" \ -e BOINC_CMD_LINE_OPTIONS="--allow_remote_gui_rpc" \ boinc/client:arm32v7
shdocker run -d \ --name boinc \ --net=host \ --pid=host \ -v /opt/appdata/boinc:/var/lib/boinc \ -e BOINC_GUI_RPC_PASSWORD="123" \ -e BOINC_CMD_LINE_OPTIONS="--allow_remote_gui_rpc" \ boinc/client:arm64v8
sh# 在管理节点初始化Swarm docker swarm init # 创建Overlay网络(供集群内服务通信) docker network create -d overlay --attachable boinc
shdocker service create \ --replicas <N> \ # 指定副本数(计算节点数量) --name boinc \ --network=boinc \ # 使用创建的overlay网络 -p 31416 \ # 暴露BOINC RPC端口 -e BOINC_GUI_RPC_PASSWORD="123" \ -e BOINC_CMD_LINE_OPTIONS="--allow_remote_gui_rpc" \ boinc/client
通过boinccmd_swarm工具向所有节点发送命令:
shdocker run --rm --network boinc boinc/client boinccmd_swarm --passwd 123 <命令参数>
示例:查询所有节点任务状态
docker run --rm --network boinc boinc/client boinccmd_swarm --passwd 123 --get_tasks
注意:Swarm模式不支持
--pid=host,因此客户端无法获取主机非BOINC进程CPU使用率,相关资源限制设置可能失效。
| 参数 | 功能描述 |
|---|---|
BOINC_GUI_RPC_PASSWORD | GUI RPC连接密码,用于BOINC Manager或boinccmd远程连接认证 |
BOINC_CMD_LINE_OPTIONS | BOINC客户端命令行选项,如--allow_remote_gui_rpc允许远程连接,--cpu_usage_limit 50限制CPU使用率等 |
BOINC_REMOTE_HOST | (可选)限制仅允许指定IP远程连接,格式为IP地址(如192.168.1.100),不设置则允许所有IP |
TZ | (可选)指定时区,默认UTC,如Asia/Shanghai(需镜像支持时区配置) |
| 参数 | 功能描述 |
|---|---|
-v /opt/appdata/boinc:/var/lib/boinc | 挂载BOINC数据目录,持久化存储配置、任务数据及计算结果 |
--device /dev/dri:/dev/dri | 挂载GPU显示设备(Intel/AMD GPU需配置) |
--device /dev/kfd:/dev/kfd | 挂载AMD KFD设备(AMD GPU需配置) |
--device /dev/vboxdrv:/dev/vboxdrv | 挂载VirtualBox驱动设备(VirtualBox标签镜像需配置) |
--gpus all | 启用所有NVIDIA GPU(NVIDIA标签镜像需配置,Docker 19.03+支持) |
--net=host | 使用主机网络模式,避免端口映射复杂配置(推荐远程管理场景) |
--pid=host | 使用主机进程命名空间,允许客户端获取主机进程信息(资源限制相关功能依赖) |
创建docker-compose.yml文件,通过docker-compose up -d启动:
yamlversion: '2' services: boinc: image: boinc/client # 根据需求替换标签,如boinc/client:nvidia container_name: boinc restart: always # 容器退出时自动重启 network_mode: host pid: host volumes: - /opt/appdata/boinc:/var/lib/boinc # 主机数据目录(自定义) environment: - BOINC_GUI_RPC_PASSWORD=123 # 替换为自定义密码 - BOINC_CMD_LINE_OPTIONS=--allow_remote_gui_rpc # 允许远程连接 # 以下设备挂载根据GPU类型添加(如NVIDIA无需,AMD/Intel需添加) # devices: # - /dev/dri:/dev/dri # - /dev/kfd:/dev/kfd # 如使用NVIDIA GPU,添加以下配置(需Docker 19.03+) # deploy: # resources: # reservations: # devices: # - driver: nvidia # count: all # capabilities: [gpu]
docker build -t boinc/client -f Dockerfile.base-ubuntu .(需获取源码)docker exec -it boinc /bin/bashdocker logs -f boincdocker run命令略有调整。/var/lib/boinc-client改为/var/lib/boinc,镜像同步调整。使用新版镜像需更新挂载路径,否则无法识别旧数据。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务