注意!此文章发布于 1049 天前。文章内容与实际情况可能有所出入或已经失效!!!

记得以前写过一篇文章介绍Termux这个软件,那时我是折腾一台老安卓才发现了这个强大的终端软件。这次我又来迫害这台安卓手机了。因为我发现了一个新的软件,也就是今天要讲到的Alpine Term。而Alpine Term是Termux+Qemu+Alpine整合而成的软件。简单的说就是Termux上装Qemu虚拟机,再用Qemu装alpine linux,从而在安卓上模拟出原汁原味的x86 linux。这种多重套娃其实用Termux也能实现,但是Alpine Term开箱即用,所以今天我就再给他套个娃:在Alpine Term的基础上安装docker。

关于Alpine Term

Alpine Term is a terminal and Linux environment application for Android. A key difference of other terminal applications is that it uses Alpine Linux running inside the headless x86_64 machine emulated with QEMU. Interaction with the operating system is done through terminals which are attached to the serial consoles of the virtual machine.(我直接引用官方原话,有兴趣自己翻译看吧。)

GitHub:Alpine Term

安装过程

首先我们去他的GitHub的Releases下载apk安装包并安装到安卓手机上。

对安卓手机的要求:

  • 基于 AArch64 的设备。
  • 安卓7.0+
  • 至少 500 MB 的内部存储空间。
  • Internet(如果您想安装/更新软件包)。

安装

安装完打开会加载几十秒,然后启动要大概十分钟(有可能是我手机太拉了才那么久,毕竟是六年前的安装手机了)。

加载完后到了登录界面,默认的账号密码都是alpine 。

sudo 切换到root账户,密码为 alpine。

输入 passwd 修改密码(可选,根据个人需要,可不改)

开启ssh登录 (非必须)

开启ssh是为了在电脑上更方便之后的操作,也可以用手机操作所以这个步骤非必须。

首先

bash
1
vi /etc/ssh/sshd_config

找到以下两项改为: yes

bash
1
2
PermitRootLogin yes                #允许以root登录
PasswordAuthentication yes #允许密码登录

将ssh添加到开机启动项里:

bash
1
rc-update add sshd boot

开启ssh

bash
1
service sshd start

常用命令

bash
1
2
service sshd restart       #重启
service sshd status #查看状态

输入: reboot 重启以下机器(又是五六分钟的等待,破安卓没办法)。

重启完后,因无法直接访问Alpine Term里Linux端口,所以想访问那个端口就得再Alpine Term里映射。在Alpine Term软件里,手指再软件的左上方向右滑,会出现菜单,点击QEMU执行:

bash
1
hostfwd_add tcp::2222-:22

22 是内部ssh的端口映射到 2222 上,设置-WiFi中查看一下手机的ip,然后就是使用ssh软件, ip:2222 登录一下ssh。

如果不是root用户登录,记得 sudo -i 切换root再执行以下的全部操作:

修改alpine源文件地址

alpine 源文件存在 /etc/apk/repositories目录下,直接修改这里面的文件地址即可:

Code
1
vi /etc/apk/repositories

替换源文件为:

bash
1
2
http://mirrors.aliyun.com/alpine/v3.12/main
http://mirrors.aliyun.com/alpine/v3.12/community

或是用以下命令一键换:

Code
1
2
sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories

配置DNS ,修改 /etc/resolv.conf 文件:

Code
1
2
nameserver 114.114.114.114
nameserver 114.114.115.115

更新软件包 :

Code
1
2
apk update
apk upgrade

安装常用包:

Code
1
2
apk add rpm
apk add wget

docker安装与配置

安装docker:

Code
1
apk add docker

docker添加开机启动项并启动docker:

Code
1
2
rc-update add docker
service docker start

docker修改镜像源:

找到并修改 /etc/docker/daemon.json 文件,没有该文件就新建一个

Code
1
2
3
4
5
6
7
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com",
"https://registry.docker-cn.com",
]
}

重启docker并检查是否成功:

Code
1
2
service docker restart
docker info

自此我们就已经完成了在安卓上利用Alpine Term安装docker的全部步骤了。

最后

我其实尝试了在这个环境下跑了一下 vaultwarden ,也就是我之前写过的那篇文章自建Bitwarden密码管理服务 里的Bitwarden的一个第三方开源版本。居然成功的在本地运行了这个。不过速度属实有的慢呀,我这六年前老古董安卓就不能说有多快了。如果你的手机配置高的话说不定会好很多。我的想法是加个内网穿透什么的,就能把它放到公网上了。这个我有空再研究一下。不过话说回来要有这时间和精力,还不如直接买台vps跑来得流畅,我也就是喜欢折腾而已,顺便学点东西。可怜我那旧手机退休了还不得安宁,哈哈哈。