作者ivon852 (内容农场杀手)
看板Android
标题[讨论] 红米Note 5原生跑docker
时间Thu Dec 30 22:55:52 2021
因为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 --iptables=false
```
3. 另一个终端机启动docker容器,例如Hello World:
```
sudo docker run hello-world
```
4. 测试Apache伺服器:
```
sudo docker run -d -p 80:80 --name myapache --net=host --dns=8.8.8.8 httpd
```
这样docker算是正常执行了,一些关於网路的详细设定请到【以下参考资料】查询。
https://gist.github.com/FreddieOliveira/efe850df7ff3951cb62d74bd770dce27
有Termux ,Android没什麽不可能的,现在docker不用虚拟机就可以近原生的效能执行了。
--
https://i.imgur.com/qBnCgUO.jpg
https://i.imgur.com/klpjZcQ.jpg
https://i.imgur.com/yLTmoHs.jpg
https://i.imgur.com/WepO17T.jpg
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.255.252.108 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Android/M.1640876159.A.C45.html
※ 编辑: ivon852 (111.255.252.108 台湾), 12/30/2021 22:58:52
※ 编辑: ivon852 (111.255.252.108 台湾), 12/30/2021 22:59:20
1F:推 A4P8T6X9: 请问这样效能堪用吗?比方说跑 jekyll12/30 23:24
应该可以,效能就取决於手机处理器本身
※ 编辑: ivon852 (42.74.4.124 台湾), 12/31/2021 17:21:22
2F:推 rsps1008: 手机装apache2感觉很帅… 01/06 09:06
3F:推 lecheck: 谢谢 01/17 22:37