Android termux免root安装docker

1. 安装qemu
apt install qemu-utils qemu-common qemu-system-x86_64-headless

2. 下载 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

3. 创建磁盘空间
qemu-img create -f qcow2 alpine.img 5G

4. 启动镜像文件
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。

5. 设置网络,一路选默认:
setup-interfaces
ifup eth0

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

6. 让开机时能输出信息
sed -i -E 's/(local kernel_opts)=.*/\1="console=ttyS0"/' /sbin/setup-disk

7.配置安装文件:
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"

8.安装系统至硬盘,建立 root 帐号的密码。
setup-alpine -f answerfile

9. 安装完之后,关机:
poweroff

10. 下一次启动:
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命令总结

11. 安装 docker,并设定开机自动启动服务。
apk update && apk add docker
service docker start
rc-update add docker

参考资料:

https://cloud.tencent.com/developer/article/2387493

posted @ 2024-02-21 16:26  沙魂  阅读(646)  评论(0)    收藏  举报