Appearance
DockRoot:一个手搓版的 Docker
优势
- 用法跟 docker 相似,但是减少了功能以及简化了用法
- 不需要内核支持,支持更多 Linux 系统
- 没后台服务进程,更省内存
- 核心代码来源于 skopoe
- 借助工具:ruri 并能支持 Android
缺点
- 必须以超级权限运行,相当于 Docker 的 privilege
- 没任何网络隔离,相当于 Docker 的 host 模式
原理
- 下载 Docker 镜像
- 解压为 rootfs
- 生成 ruri 需要运行的配置文件
- ruri -c xxx/ruri.conf 运行镜像
下载
https://fw.koolcenter.com/binary/DockRoot/
运行方法
- 必须准备一个高速的U盘或者硬盘,格式化为 Ext4
- 手动把 DockRoot 下载到硬盘上
- 下载镜像:
./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:酷友社