Skip to content

DockRoot:一个手搓版的 Docker

优势

  1. 用法跟 docker 相似,但是减少了功能以及简化了用法
  2. 不需要内核支持,支持更多 Linux 系统
  3. 没后台服务进程,更省内存
  4. 核心代码来源于 skopoe
  5. 借助工具:ruri 并能支持 Android

缺点

  1. 必须以超级权限运行,相当于 Docker 的 privilege
  2. 没任何网络隔离,相当于 Docker 的 host 模式

原理

  1. 下载 Docker 镜像
  2. 解压为 rootfs
  3. 生成 ruri 需要运行的配置文件
  4. ruri -c xxx/ruri.conf 运行镜像

下载

https://fw.koolcenter.com/binary/DockRoot/

运行方法

  1. 必须准备一个高速的U盘或者硬盘,格式化为 Ext4
  2. 手动把 DockRoot 下载到硬盘上
  3. 下载镜像:
./DockRoot pull library/alpine:latest alpine001
./DockRoot run alpine001

alpine001 是容器名字,可以随便取英文单词的名字 注意自动生成一个配置文件 ruri.conf 里面指定了 Docker 的用户空间文件系统的存储目录 默认使用了 kspeeder 做 Docker 镜像加速 如果不用 kspeeder 则可以这样下载镜像:

./DockRoot pull docker.m.daocloud.io/library/alpine:latest alpine001

查看是否运行,停止,删除方法:

./DockRoot ps alpine001
./DockRoot stop alpine001
./DockRoot rm alpine001

调用 rm 参数后,就可以安全的删除硬盘的文件了

Homeassistant

比如智能家居 Homeassistant 的使用如下:

下载并运行:

./DockRoot pull homeassistant/home-assistant:latest ha002
./DockRoot run ha002

Nextcloud

下载并运行:

./DockRoot pull library/nextcloud:latest next003
# 因为 nextcloud 默认用 80 端口,需要手动修改 rootfs
# /etc/apache2/ports.conf 
# 把 80 端口改成 8081,免得跟路由器的 80 端口冲突
./DockRoot run next003

Open-webui

./DockRoot pull linkease/open-webui:main openui005
./DockRoot run openui005

迅雷下载

./DockRoot pull cnk3x/xunlei:latest xunlei006
./DockRoot run xunlei006

浏览器面板

./DockRoot.arm64 pull hslr/sun-panel:latest sunpanel007
./DockRoot run sunpanel007

音乐服务器

./DockRoot.arm64 pull deluan/navidrome:latest navi008
./DockRoot.arm64 run navi008

其他更多的命令参数演示:

后台运行:

./DockRoot.arm64 -d run navi008

后台运行日志文件在:

${DockRootData}/navi008/ruri.log

执行某个具体的程序:

./DockRoot.arm64 run navi008 /bin/sh

磁盘映射:

./DockRoot.arm64 run -v /tmp/mnt/sdb2/music:/music --renew navi008

添加环境变量:

./DockRoot.arm64 run -e ND_MUSICFOLDER=/musicpath2 -v /tmp/mnt/sdb2/music:/musicpath2 --renew navi008

更多不知道的请看视频,搜索B站或者Youtube:酷友社