【Alpine Term】Android免root本地运行Docker

2022-05-30 Views729字3 min read

虽然Termux很强大,可以安装各种linux,但基于termux版linux还是不能运行Docker,需要Termux上装Qemu虚拟机,Qemu装alpine linux,这个时候才是原汁原味的x86 linux。
这种套娃的操作可能会劝退不少人,幸运的是有人把Termux+Qemu+Alpine整合好了,名为alpine-term,开箱即用,安装一个apk打开就是配置完全的alpine linux。

Githuh:https://github.com/FakeRajbhx/alpine-term/

下载安装APP并登录root

首先先下载alpine-term 578 MB
下载安装和安装后初始化开机都需要等一会儿,大约一分钟

开机后,登录系统,用户 alpine 密码: alpine
然后切换到root账户,输入sudo -s 密码:alpine
如果想要修改root密码, 输入 passwd ,需要输入两次新密码。

开启root登录SSH

注意:请不要将app放在后台去复制以下代码,不然切换回来需要重新启动
系统默认是禁止ssh密码登录的,所以需要先开启她,输入:

sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config

如果还需要开机root用户登录的话,输入

sed -i 's/PermitRootLogin no/PermitRootLogin yes/g' /etc/ssh/sshd_config

然后重启启动sshd服务,输入

service sshd restart

重启完成就配置好了。

映射ssh的22端口

因为是Qemu套娃,所以需要映射ssh的22端口,开机完成后,手指在软件的左上方向右滑,会出现菜单,如下图所示:

然后映射ssh的22端口到手机的2222端口,选择 [1]QEMU,输入

hostfwd_add tcp::2222-:22

回车

【注意】这个映射端口的命令每次重启Alpine Term 都需要重新设置一次!建议常驻后台,常驻后台内存占用和耗电量都很低。

执行上面的指令后就可以远程ssh手机的2222端口。接下来的操作也强烈建议在电脑上远程ssh操作,毕竟Ctrl C V特别方便。

配置APK源和DNS

因为Alpine默认的都是国外的源和DNS,所以这里都需要改成国内的
更换阿里云的源

sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories

更换阿里云+DNSPOD 的DNS

sed -i 's/nameserver 185.120.22.15/nameserver 223.5.5.5/g' /etc/resolv.conf
sed -i 's/nameserver 94.16.114.254/nameserver 119.29.29.29/g' /etc/resolv.conf

这样网络就正常可以使用了,接下来设置时区

setup-timezone

等到提示 Which timezone are you in? ('?' for list) [UTC],然后输入
Asia/Shanghai
执行完成后,输入date测试下时间。

启动Docker

更新软件包 :

apk update
apk upgrade

更新之后设置docker开机启动

rc-update add docker

然后启动docker

service docker start

启动的挺慢,稍等一分钟左右,然后试试docker version,打印版本号则启动成功。

Docker内容器端口映射需要在QEMU中输入 hostfwd_add tcp::安卓手机端口-:容器端口 (同理映射ssh的22端口)

EOF