飞牛OS Docker 部署网心云容器魔方从零到运行的完整踩坑实战记录2026-03-15 | 适用系统飞牛 fnOS | 难度★★☆前言网心云容器魔方是一款可以将闲置 NAS 算力变现的工具通过贡献带宽和存储资源获取收益。本文记录了在飞牛 fnOS 系统上通过 Docker CLI 部署网心云的完整过程包含所有踩过的坑和对应解决方案希望能帮到同样折腾的小伙伴。一、环境说明 环境信息系统飞牛 fnOS基于 Debiansystemd 管理服务访问方式SSH 远程连接fnos192.168.1.50:22Docker 版本v1.51dockerd 手动管理用户fnos非 root需要 sudo二、操作步骤步骤一SSH 连接飞牛系统在本机终端Windows 自带 OpenSSH 或 PuTTY 均可执行ssh fnos192.168.1.50 -p 22# 输入密码后进入系统步骤二解决 Docker 权限问题直接执行 docker 命令会报权限错误# 错误提示permission denied while trying to connect to the Docker daemon socketat unix:///var/run/docker.sock原因是 fnos 用户不在 docker 用户组。解决方式所有 docker 命令加 sudo 前缀或一次性将用户加入 docker 组# 方案一命令加 sudo临时sudo docker ps# 方案二加入 docker 组一劳永逸需重新登录 SSHsudo usermod -aG docker fnos步骤三解决镜像拉取失败问题重点踩坑坑1Docker Hub 直连超时执行 docker pull 时出现Error response from daemon: Get https://registry-1.docker.io/v2/:context deadline exceeded (Client.Timeout exceeded while awaiting headers)根本原因是 Docker Hub 在国内被墙需要配置镜像加速源。坑2daemon.json 配置不生效在 /etc/docker/daemon.json 中写入镜像源后重启发现完全没有效果。查看 dockerd 启动参数发现# /etc/systemd/system/docker.service 中的启动命令ExecStart/usr/bin/dockerd --tlsfalse -H unix:///var/run/docker.sock# 飞牛 OS 写死了启动参数不读取 daemon.json尝试通过 sed 修改 service 文件追加 --registry-mirror 参数但语法问题导致 Docker 服务无法启动status1/FAILURE需要及时回滚# 回滚命令Docker 启动失败时执行sudo sed -i s|ExecStart.*|ExecStart/usr/bin/dockerd --tlsfalse -H unix:///var/run/docker.sock| \/etc/systemd/system/docker.servicesudo systemctl daemon-reload sudo systemctl start docker坑3镜像名称错误之前一直尝试拉取 onething1/fnos-wxedge但这个镜像压根不在 Docker Hub 上网心云使用的是自己的私有镜像仓库正确镜像地址为images-cluster.xycloud.com/wxedge/wxedge:latest 关键发现网心云镜像托管在其自有服务器 images-cluster.xycloud.com该域名在国内可直连完全不需要配置任何加速源之前所有折腾镜像加速的步骤都是无效功直接用正确地址拉取即可。步骤四拉取镜像使用正确的镜像地址直接拉取速度非常快sudo docker pull images-cluster.xycloud.com/wxedge/wxedge:latest步骤五运行容器拉取完成后执行以下命令创建并启动容器sudo docker run -d \--name wxedge \--restartalways \--privileged \--networkhost \--tmpfs /run \--tmpfs /tmp \-v /vol1/1000/wxedge:/storage \images-cluster.xycloud.com/wxedge/wxedge:latest参数说明--restartalways系统重启后容器自动启动--privileged赋予容器完整权限网心云运行必要--networkhost使用宿主机网络确保带宽贡献正常--tmpfs /run /tmp使用内存文件系统提升性能-v /vol1/1000/wxedge:/storage数据持久化路径可按实际存储卷调整步骤六验证部署检查容器是否正常运行sudo docker ps | grep wxedge# 正常输出示例Up 表示运行中# a1b2c3d4e5f6 images-cluster.xycloud.com/wxedge/wxedge:latest# /entrypoint.sh 2 minutes ago Up 2 minutes wxedge容器启动后打开浏览器访问管理界面http://192.168.1.50:18888三、一键部署命令复制即用以下命令可直接复制到 SSH 终端执行完成拉取 部署全流程sudo docker pull images-cluster.xycloud.com/wxedge/wxedge:latest \sudo docker stop wxedge 2/dev/null; sudo docker rm wxedge 2/dev/null; \sudo docker run -d \--name wxedge \--restartalways \--privileged \--networkhost \--tmpfs /run \--tmpfs /tmp \-v /vol1/1000/wxedge:/storage \images-cluster.xycloud.com/wxedge/wxedge:latest \echo 部署成功 sudo docker ps | grep wxedge四、常见问题 FAQQ1拉取镜像时提示 manifest unknown说明镜像地址或 tag 有误。确认使用的是 images-cluster.xycloud.com/wxedge/wxedge:latest注意不是 Docker Hub 的 onething1/fnos-wxedge。Q2docker 命令报 permission denied加 sudo 前缀即可。或执行 sudo usermod -aG docker fnos 将用户加入 docker 组重新登录 SSH 后生效。Q3修改 service 文件后 Docker 起不来怎么办立即执行回滚命令恢复原始启动参数见步骤三然后 sudo systemctl start docker 重启服务。Q4存储路径 /vol1/1000/wxedge 不存在先创建目录sudo mkdir -p /vol1/1000/wxedge或将路径替换为你实际的存储卷如 /vol2/wxedge。Q518888 端口无法访问容器使用 --networkhost 模式端口直接绑定宿主机。检查飞牛 OS 防火墙是否放行 18888 端口或稍等 1~2 分钟待容器初始化完成后再访问。五、总结整个部署过程最大的坑就是镜像名称错误——网心云并没有把镜像上传到 Docker Hub而是放在自己的私有仓库。一旦知道正确地址整个部署流程不超过 3 分钟。踩坑路径回顾权限问题 → 加 sudo 解决Docker Hub 超时 → 尝试配置镜像加速发现 daemon.json 不生效修改 service 文件失败导致 Docker 崩溃 → 回滚恢复发现根本原因镜像地址错误 → 使用网心云私有仓库直接拉取成功✅ 最终结论正确镜像地址images-cluster.xycloud.com/wxedge/wxedge:latest该地址国内直连无需任何加速源配置一条命令即可完成部署。— END —如有疑问欢迎在帖子下方留言交流