安卓手机安装docker
-
安装 termux
下载地址如下,下载arm64的那个,然后直接安装
https://github.com/termux/termux-app/releases
-
打开termux,查询手机ip(手机不方便输入,我这里是oppo手机,使用了oppo的跨屏互联)
任意网卡的IP都行,除了 lo,lo是回环地址,指向的本地。
-
安装ssh工具
#安装ssh pkg install openssh #启动ssh,需要注意这里的ssh默认端口是8022,不是22 sshd #加入开机自动启动sshd(如果需要就开启,不需要就不开启),去掉开机启动去对应文件删除sshd,这里的开机启动时开启termux就启动,并不是手机开机就启动,如果需要开机就启动,把termux设置成开机启动。 echo "sshd" >> ~/.bashrc #如果需要alpine的虚拟机也是开机启动 #vi .bashrc 输入以下内容 sshd cd /data/data/com.termux/files/home/alpine ./run.sh
-
查看当前用户名和设置密码
#查看用户名,我这边结果是u0_a377,你应该是不同的 whoami #给当前用户设置密码,也就是给u0_a377这个用户设置密码 passwd
-
使用任意ssh工具远程连接
这里的IP是前面查询到的IP,变了wifi所以IP变了。
-
安装 wget 和 vim
安装可后面备用pkg install wget pkg install vim
-
安装qemu
apt install qemu-utils qemu-common qemu-system-x86_64-headless
-
下载Alpine linux系统(这里需要下载 arm架构的linux ,x86的 centos 或者 Ubuntu 不确定能不能用,qemu好像都支持)
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里面启动安装alpine的引导程序
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用户登录,这个用户是QEMU常见的虚拟机的默认用户是root和前面 termux的 用户无关。
-
网卡设置
setup-interfaces #然后又更具配置配置网卡 ifup eth0
-
让开机时能输出信息
sed -i -E 's/(local kernel_opts)=.*/\1="console=ttyS0"/' /sbin/setup-disk
-
创建安装文件
vi answerfileKEYMAPOPTS="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"
-
安装alpine
setup-alpine -f answerfile
-
安装完成之后关机
poweroff
-
创建启动脚本
touch run.sh chmod 775
vim run.sh,然后输入以下内容(这时候手机的8081被映射到虚拟机的80端口)
#这是创建qemu的指令,详情参数查询qemu的文档 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
-
启动qemu虚拟机里面的alpine系统
./run.sh
-
然后安装docker 和启动
alpine的包管理工具是apk,termux的包管理工具是 pkg,这类似centos的包管理工具是yum,ubuntu的是apt#这个docker改了daemon.json的镜像地址以后依旧是连接的docker.io不知道为啥(后查找,别的地方的docker 也不能用了,好像国内的docker都不能用了) apk update && apk add docker service docker start #开机启动 rc-update add docker
-
国内镜像不能用的问题解决,找还能用的小厂
docker 之前大部分镜像源都不能用了,包括阿里,华为,清华的共有源
还有部分小厂的源还能用,据说是为了推国内镜像的可靠源(atomHub:https://hub.atomgit.com/)vi /etc/docker/daemon.json,输入一下内容,然后重启docker: service docker restart
{ "registry-mirrors": ["https://dockerhub.xianfish.site"] }
-
qemu指定的端口是手机的8081映射到虚拟机的80端口,我们在虚拟机里面安装个nginx在外面是可以直接访问的
#安装nginx apk add nginx
-
修改nginx的配置文件
默认配置文返回的都是404,修改以后可以在外面正常访问
修改以后启动
service nginx start
-
有IPV6可以通过DDNS 映射出去作为移动服务器了,可以跑个redis ,mysql 之类的之类的小东西。
-
不知道安卓上的qemu虚拟机性能损失多少,如果需要性能可以考虑root以后直接在手机上安装ubuntu之类的linux,以达到性能最低损失
能耍的时候就一定要耍,不能耍的时候一定要学。
--天道酬勤,贵在坚持posted on 2024-09-20 18:26 zhangyukun 阅读(528) 评论(0) 编辑 收藏 举报