安卓(无root) 从零安装docker
-
在您的安卓设备上打开 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.19(经过虚拟化优化)的 ISO 文件:
wget http://dl-cdn.alpinelinux.org/alpine/v3.19/releases/x86_64/alpine-virt-3.19.1-x86_64.iso
-
创建磁盘(注意:它实际上不会占用 5GB 的空间,而是大约 500-600MB):
qemu-img create -f qcow2 alpine.img 5G
-
启动虚拟机(-m 1024 指使用了 1024MB 的内存):
qemu-system-x86_64 -machine q35 -m 1024 -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,dns=8.8.8.8,hostfwd=tcp::2222-:22 -device virtio-net,netdev=n1 -cdrom alpine-virt-3.19.1-x86_64.iso -nographic alpine.img
-
使用用户名
root
登录(没有密码)。 -
设置网络(按回车键使用默认设置):
localhost:~# setup-interfaces Available interfaces are: eth0. Enter '?' for help on bridges, bonding and vlans. Which one do you want to initialize? (or '?' or 'done') [eth0] Ip address for eth0? (or 'dhcp', 'none', '?') [dhcp] Do you want to do any manual network configuration? [no]
然后运行:
ifup eth0
-
创建一个应答文件以加快安装过程:
wget https://raw.githubusercontent.com/14790897/docker-in-termux-cn/master/answerfile
注意: 如果您看到类似于
wget: bad address 'gist.githubusercontent.com'
的错误,请运行以下命令:echo -e "nameserver 192.168.1.1\nnameserver 1.1.1.1" > /etc/resolv.conf
-
修补
setup-disk
以在启动时启用串口控制台输出:sed -i -E 's/(local kernel_opts)=.*/\1="console=ttyS0"/' /sbin/setup-disk
-
运行安装设置将系统安装到磁盘:
setup-alpine -f answerfile
-
安装完成后,关闭虚拟机(使用命令
poweroff
)。 -
再次启动但不加载 CD-ROM:
qemu-system-x86_64 -machine q35 -m 1024 -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,dns=8.8.8.8,hostfwd=tcp::2222-:22 -device virtio-net,netdev=n1 -nographic alpine.img
可以创建脚本,快速启动
A - 创建脚本 run_qemu.sh
:
nano run_qemu.sh
在文本编辑器中,写入以下内容:
#!/bin/bash
qemu-system-x86_64 -machine q35 -m 1024 -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,dns=8.8.8.8,hostfwd=tcp::2222-:22 -device virtio-net,netdev=n1 -nographic alpine.img
保存并关闭文件。在 nano 中,您可以按 Ctrl+X
,然后按 Y
确认保存,再按回车确认文件名。
B - 使用 chmod
命令赋予脚本可执行权限:
chmod +x run_qemu.sh
C - 运行脚本:
./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
-
启动 Docker:
service docker start
-
设置 Docker 开机自启:
rc-update add docker
-
检查 Docker 是否成功安装:
docker run hello-world
一些有用的快捷键
Ctrl+a x
: 退出仿真Ctrl+a h
: 切换 QEMU 控制台
Leave a comment