docker镜像和容器通俗讲解(旧手机刷PostmarketOS系统后如何安装Docker)

之前有网友提到了,于是补充一篇关于:手机刷PostmarketOS系统后如何安装docker。另外顺便解答大家的一些问题:

PostmarketOS是可以在手机上原生运行的Linux系统,基于Alpine Linux开发。刷机后可以在旧手机上体验完整的Linux系统。这里重点说一句:刷PostmarketOS和大家理解的刷机目的完全不同。手机刷PostmarketOS后就不是为了作为手机使用。

虽然PostmarketOS具备手机的一些功能比如打电话、联网。但操作逻辑和安卓IOS不同,也并不好用。加上一些驱动原因很多手机刷机后拨号和网络功能无法正常使用。所以如果只是图个新鲜刷PostmarketOS完全没必要。PostmarketOS的意义在于让的旧设备变成一台Linux主机,你可以在上面学习Linux操作,网站搭建等。是一个非常不错的学习和实验环境。鉴于现在树莓派涨价严重,旧手机刷PostmarketOS完全可以成为性能更好价格更低的代替方案。

并非只有红米2才能刷PostmarketOS,在官方的wiki上可以看到已经有非常多的设备刷了PostmarketOS。但是不同的设备刷机难度不同,而且网上很难找到完整的刷机方案,新手玩不转。新手想体验PostmarketOS建议找最成熟的刷机方案。

另外由于很多设备兼容不完全,导致功能无法完全正常使用,这也是为什么如果你刷PostmarketOS是为了当一个手机用,那就完全没必要。但是如果你只是想把一台旧手机改装成Linux主机,那你的选择非常多,而且最终好用程度可能会超出你的预期。

先介绍一下如何安装docker,PostmarketOS的包管理命令是apk,用下面的命令安装docker并设置开机自启动:

sudo apk add docker sudo service docker start sudo rc-update add docker default

我推荐搭建顺便安装一下zerotier,这样远程也可以访问手机SSH也能远程访问docker里的应用。

sudo apk add zerotier

但是安装docker之后会遇到一个问题,因为防火墙的原因docker的端口无法通过外部访问。虽然官方文档里介绍了可以通过防火墙规则允许docker通信,但是实际我按照官方指引配置/etc/nftables.d后无效:

#!/usr/sbin/nft -f table inet filter { chain input { iifname "docker*" accept comment "Allow incoming network traffic from Docker" } chain forward { iifname "docker*" accept comment "Allow outgoing network traffic from Docker" ct state {established, related} counter accept comment "accept established connections" } }

于是我直接关了防火墙(因为这不是真正的服务器,也没有公网所以关闭防火墙影响不大):

sudo service nftables stop sudo rc-update del nftables

这下docker可以正常访问了,但是注意由于手机CPU是ARM指令集,所以下载镜像时也要搜索ARM镜像。我安装了一个speedtest进行测速。PostmarketOS另一个强大之处在于USB连接电脑可以使用USB网卡模式共享电脑的网络,直接通过172.16.42.1就可以访问PostmarketOS。在USB连接模式下我的红米2测速可以达到100兆:

docker镜像和容器通俗讲解(旧手机刷PostmarketOS系统后如何安装Docker)(1)

而在wifi连接下,测速则只有20兆:

docker镜像和容器通俗讲解(旧手机刷PostmarketOS系统后如何安装Docker)(2)

另外有朋友说通过USB联网可不可以充电,事实上通过USB联网同时是可以充电的。所以只要通过USB插在电脑上,PostmarketOS就是一台带UPS的小主机。可以像我一样套娃(手机连接小主机)。

docker镜像和容器通俗讲解(旧手机刷PostmarketOS系统后如何安装Docker)(3)

以及通过SSH小主机后,再SSH手机:

docker镜像和容器通俗讲解(旧手机刷PostmarketOS系统后如何安装Docker)(4)

唯一遗憾的是手机OTG拓展时不能充电,不然通过OTG拓展真可以做一台功能不错的小主机了(至少做个下载机没问题)。如果USB口被占用只能通过改装电池位置的电源接口。

如果手机内存比较小,比如像我这台红米2(1G 8G),其实安装Docker的意义不大,因为很多镜像安装下来有几百兆,空间马上就会被占满。如果有性能好一点的手机可以用Docker搭建不少服务。如果手机性能较差,主要用于学习Linux。把它当成一个小服务器进行测试学习Nginx PHP Sqlite勉强可以运行。

docker镜像和容器通俗讲解(旧手机刷PostmarketOS系统后如何安装Docker)(5)

另外编译安装wakeonlan后作为局域网的一个唤醒器唤醒局域网中的其它主机,直接命令操作比较麻烦可以通过设置alias配置:

alias ubuntu='~/sd/WakeOnLAN-0.3/a.out mac地址'

最后关于折腾是不是浪费时间这个问题,折腾是真折腾。至于是不是浪费时间,主要看目的和个人爱好,但有一说一PostmarketOS这个项目是真不错。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页