[讨论] 红米Note 5原生跑docker

楼主: ivon852 (ASUS)   2021-12-30 22:55:52
因为kernel缘故,就算有Termux也无法直接执行docker,所以兴起了自行改kernel重新编译
的想法。
https://i.imgur.com/d7Fee9i.png
网志好读版: https://reurl.cc/aklARX
刷kernel的小常识: Android刷kerenl不会删除手机资料。不过为避免卡开机,最好用TWRP
先备份原厂的boot分区再操作。
手机: 红米Note 5(whyred),已Root,系统为Lineage OS 18。
如果想试试,我把boot.img档案放在Github上,LineageOS可直接刷:
https://reurl.cc/GokvZ3
一、检查运作条件
手机开启Termux,下载执行Moby的脚本
```
pkg install wget
wget https://raw.githubusercontent.com/moby/moby/master/contrib/check-config.sh
chmod +x check-config.sh
sed -i '1s_.*_#!/data/data/com.termux/files/usr/bin/bash_' check-config.sh
sudo ./check-config.sh
```
看看目前手机的kernel缺少哪些功能,把红字missing部分记录下来。最主要是`General Ne
cessary`下的项目要全部开启。
https://i.postimg.cc/jjtppyjd/screen.jpg
二、寻找kernel & 测试编译
我的思路是这样: 找一个稳定的第三方kernel专案,确认能顺利在自己电脑编译,刷到手机
也正常,再以此为基础进行进入深入修改。
完整编译&刷内核步骤:
https://bit.ly/3yWRh7Y
三、修改kernel
1. 在用机型defconfig建立.config之后,使用make menuconfig开启kconfig接口,按照刚
刚手机显示missing的项目,将其一一开启。
https://i.postimg.cc/1RkwGvTV/screen4.jpg
2. 例如我要开启CONFIG_OVERLAY_FS这个选项,就在menuconfig的接口按下“/”
https://i.postimg.cc/2yZjjFFP/scree2n.jpg
3. 输入名称搜寻,menuconfig会告诉你设定值的大约位置。
https://i.postimg.cc/c1gftpDN/screen3.jpg
4. 键盘上下键找到该选项,按下y启用。
5 用键盘左右键,移动到Save,储存设定值。移动到Exit按下Enter离开。
6.根据FreddieOliveira的说明,还要修改kernel专案目录下的二个档案: kernel/Makefil
e和net/netfilter/xt_qtaguid.c。
7. 重新编译一次kernel。
```
make
```
8. 用AIK重新打包档案,用TWRP刷到手机。
开机后会显示“你的装置发生内部问题”,属于正常现象。
这支红米Note 5开机后还要再使用以下指令才能正常挂载cgroup:
```
sudo mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroup /sys/fs/cgroup
```
四、手机安装docker
1. 用Moby的脚本再次确认kernel相容性都是绿色的之后,透过Termux的root repo下载dock
er。
```
pkg install root-repo && pkg install docker
```
2. Termux左边滑出来可以开第二个终端机。先启动docker daemon。
```
sudo dockerd
作者: A4P8T6X9 (残废的名侦探)   2021-12-30 23:24:00
请问这样效能堪用吗?比方说跑 jekyll
作者: rsps1008 (我没有暱称)   2020-01-06 09:06:00
手机装apache2感觉很帅…
作者: lecheck (小调皮)   2020-01-17 22:37:00
谢谢

Links booklink

Contact Us: admin [ a t ] ucptt.com