termux只是一个linux模拟环境,不是真正的系统,要安装docker,需要先用qemu建立linux虚拟机,在虚拟机上安装alpine,在alpine里安装docker。本文得到的是x86-64版本的docker。
termux内操作
打开 Termux
pkg update -y && pkg upgrade -y
安装必要的依赖
pkg install qemu-utils qemu-common qemu-system-x86_64-headless wget -y
建立目录
mkdir alpine && cd alpine
下载Alpine Linux 3.20.2 iso
wget http://dl-cdn.alpinelinux.org/alpine/v3.20/releases/x86_64/alpine-virt-3.20.2-x86_64.iso
创建磁盘
qemu-img create -f qcow2 alpine.img 5G
启动
qemu-system-x86_64 -machine q35 -m 2024 -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 -device virtio-net,netdev=n1 -cdrom alpine-virt-3.20.2-x86_64.iso -nographic alpine.img
虚拟机内部操作
用root登录,无密码
设置网络
setup-interfaces
直接选默认
ifup eth0
安装到虚拟机硬盘
setup-alpine
mirrors自动选择
安装完成后,关闭虚拟机(命令 poweroff)
启动方法
启动命令run_qemu.sh:
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::15230-:5230 -device virtio-net,netdev=n1 -nographic -accel tcg,thread=multi alpine.img
chmod +x run_qemu.sh
运行虚拟机并进入:
./run_qemu.sh
更新系统并安装 Docker:
echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "nameserver 8.8.4.4" >> /etc/resolv.conf
apk update && apk add docker
service docker start
rc-update add docker
docker version
docker ps
ifconfig
启动命令中的
hostfwd=tcp::15230-:5230
是把内网的5230和外部的15230端口关联以便用外部IP访问内网。此方式无法使用桥接方式连接网络,只能用映射端口的方式访问内部容器。