站点图标 姿势小王子

termux免root安装docker

之前有问magisk版本的青龙面板无法启动的问题,可以试一试这个,免root在termux上安装alpine系统,然后安装docker。虽然说网上相关教程也挺多的,自己也简单写一下吧。

至于说性能的话,如果你手机配置不太行,可能跑不太起来,破旧手机还是谨慎上车。相比于termux本身或者termux安装的各种linux发行版,或者root时候使用linuxdeploy安装的,算是一个比较完整的系统,能搞的事情应该是挺多的。

安装qemu

apt install qemu-utils qemu-common qemu-system-x86_64-headless

下载 Alpine Linux 3.12(virt 优化)ISO镜像文件

mkdir alpine && cd $_
wget http://dl-cdn.alpinelinux.org/alpine/v3.12/releases/x86_64/alpine-virt-3.12.3-x86_64.iso

创建磁盘空间

qemu-img create -f qcow2 alpine.img 5G

启动镜像文件

qemu-system-x86_64 -machine q35 -m 1024 -smp cpus=2 -cpu qemu64 \
  -drive if=pflash,format=raw,read-only,file=$PREFIX/share/qemu/edk2-x86_64-code.fd \
  -netdev user,id=n1,hostfwd=tcp::2222-:22 -device virtio-net,netdev=n1 \
  -cdrom alpine-virt-3.12.3-x86_64.iso \
  -nographic alpine.img

使用用户登录 root。

设置网络,一路选默认:

setup-interfaces
ifup eth0

#设置好之后可以自己ping一下,是否设置正确

让开机时能输出信息

sed -i -E 's/(local kernel_opts)=.*/\1="console=ttyS0"/' /sbin/setup-disk

配置安装文件:

vi answerfile
#输入i,进入编辑,添加以下内容,按esc退出编辑,输入:wq保存退出

KEYMAPOPTS="us us"
HOSTNAMEOPTS="-n alpine"
INTERFACESOPTS="auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
    hostname alpine
"
TIMEZONEOPTS="-z UTC"
PROXYOPTS="none"
APKREPOSOPTS="http://dl-cdn.alpinelinux.org/alpine/v3.12/main http://dl-cdn.alpinelinux.org/alpine/v3.12/community"
SSHDOPTS="-c openssh"
NTPOPTS="-c busybox"
DISKOPTS="-v -m sys -s 0 /dev/sda"

安装系统至硬盘,建立 root 帐号的密码。

setup-alpine -f answerfile

安装完之后,关机:

poweroff

下一次启动:

qemu-system-x86_64 -machine q35 -m 2048 -smp cpus=2 -cpu qemu64 \
  -drive if=pflash,format=raw,read-only=on,file=$PREFIX/share/qemu/edk2-x86_64-code.fd \
  -netdev user,id=n1,hostfwd=tcp::2222-:22,hostfwd=tcp::8081-:80 -device virtio-net,netdev=n1 \
  -nographic alpine.img

#m是分配2GB内存,cpu是2核CPU
#hostfwd则是把外部8081通讯端口转发到虚拟机的80通讯端口。

各种qemu参数可以参考:qemu-system-x86_64命令总结

安装 docker,并设定开机自动启动服务。

apk update && apk add docker
service docker start
rc-update add docker

退出移动版