首先,上一篇文章推荐的固件要修正
参考文章
<<OpenWrt软路由(NanoPi For NAS All In One R2S ):固件安装和扩容(Squashfs)>>
作者sirpdboy固件的免费版本,可以安装Docker和安装Docker Compose,但是无法安装Dockerd,所以可以看到Docker的版本,但是无法启动和使用Docker(本身插件也默认没有Docker)
有Docker版本和全插件的,并不是免费的,所以日常网络软路由,可以试试这个固件,但是想使用Docker相关应用,就不推荐免费版固件了
具体的固件这里不提供下载,在买R2S和R4S的时候咨询卖家客服即可
理论上接下来的扩容和Docker的安装使用,在openWrt上是通用的,大同小异
测试过三款固件
一个是恩山sirpdboy免费的固件(无法安装dockerd依赖,无法启动docker)
一个是NanoPi-R2S-rk3328(gihutb)(有docker,反复几分钟就死机一次,可能是电源也可能是固件问题)
一个是R2S本身的固件(应该和卖家一致)(目前已扩容docker磁盘,并且自带docker插件,可以安装docker compose,并且已经测试几个应用,成功运行,且拉取镜像5个多GB,说明对应扩容也没有问题)
上一篇文章的扩容,没有达到docker扩容的效果(本文也进行修正)
前提条件
软件: balenaEtcher (下载地址:https://etcher.balena.io/)
硬件:TF卡(128GB)(搭配对应的USB读卡器)
安装balenaEtcher后,打开软件,插入读卡器读取TF卡
选择固件
选择磁盘
注意这个要特别注意,认真查看选中的磁盘大小,确认和TF卡大小一致
避免选中其他U盘或者本机磁盘,造成把电脑自身系统给格式化了
点击Flash开始刷入固件到TF卡
mac上需要输入密码
等待刷入完成
输入成功后会看到弹框提示不能识别
点击忽略或者推出(mac上建议点击退出)
这是完成的界面
把TF卡插入R2S,然后插入电源线,开启电源
此时建议不要插入网线R2S的Wlan和Lan口,避免影响其他路由
等待system红灯闪缩到红灯稳定,说明系统已经成功运行
注意
本文直接用R2S Lan(局域网),连接到电脑网线,发现无法识别网络
但是把R2S Lan(局域网),网线接入一个动态配置的路由器,然后电脑连接路由器的wifi是可以正常访问openWrt的
所以固件本身没有问题,但是要进行测试和设置,这里还要提前准备一个路由器
如果你的Lan和电脑网线可以正常连接识别,那么上面的注意事项可以略过
这个固件的默认管理后台地址:http://192.168.100.1
默认账户:root 默认密码:password
访问管理后台
进入主界面
可以看到左侧有Docker菜单(默认安装了docker)
这里的扩容,仅仅是对应Docker
点击菜单,系统->磁盘管理
对于TF而言,一般标识为/dev/mmcblk0,点击右侧对应的修改
找到最下面剩余空间比较大的磁盘,本文的为118GB左右
点击右侧的新建
新建后,多出来一个mmcblk0p3
点击对应的格式化
选择格式化为ext4(一定要选择ext4)
点击格式化,等待格式化成功
格式化成功后页面自动刷新
可以看到mmcblk0p3的文件系统变为了ext4
点击菜单,系统->挂载点
点击生成配置
可以看到挂载点列表,多了一个下图红框标识的内容
点击右侧对应的编辑
勾选启用
但是这个弹框并没有看到选项(/opt或者/opt/docker)
点击自定义区域
输入/opt,然后按Enter回车
点击保存
然后点击页面底部的保存并应用
页面自动刷新后
可以已挂载的系统,多了红框这个区域
点击磁盘管理
也可以看到(确认)多了红框这个挂载磁盘到/opt的标识
值得注意的是,扩容docker并不会扩容软件包或者别的系统区域
所以本文只针对docker扩容
使用终端ssh进入openWrt
ssh [email protected]
可能遇到错误
Host key for 192.168.100.1 has changed and you have requested strict checking
是因为之前进入过同样的openWrt ssh,但是TF再次刷固件后,同样IP地址对应的 ssh的key和哈希对不上了,需要清除缓存,然后重新创建key
清除ssh缓存
ssh-keygen -R 192.168.100.1
再次ssh
首次需要创建key,输入yes即可
继续输入密码
ssh进入到openWrt
进入到/opt目录
cd /opt
查看docker版本
docker --version
可以看到默认的为V20.10.22
查看docker-compose版本
docker-compose --version
默认没有安装
-bash: docker-compose: command not found
安装docker-compose
下载docker-compose(aarch64)
curl -SL https://github.com/docker/compose/releases/download/v2.
20.3/docker-compose-linux-aarch64 -o /bin/docker-compose
复制以下文本(上述代码高亮好像地址有空格问题)
curl -SL https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-aarch64 -o /bin/docker-compose
下载成功后给与权限
chmod 777 /bin/docker-compose
然后检测docker-compose版本
docker-compose --version
可以看到安装成功
docker-compose版本为v2.20.3
考虑到openWrt没有常规的linux命令和依赖库,所以需要一个可视化容器管理平台
因为扩容的磁盘目录是/opt
所以本文把所有有关docker的内容都放在/opt目录下
新建/opt/dsx2016/docker/portainer文件夹
mkdir -p /opt/dsx2016/docker/portainer
新建docker-compose.yml配置文件
vi docker-compose.yml
按一下i键,进入编辑编辑
右键复制并黏贴以下内容
version: "3"
services:
portainer:
image: portainer/portainer-ce:linux-arm64
container_name: portainer
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./ortainer_data:/data
ports:
- "3036:8000"
- "3037:9000"
- "3038:9443"
按一下Esc
输入:wq!
按Enter退出编辑并保存
拉取镜像并启动服务
docker-compose up
可以看到报错
open /opt/docker/tmp/GetImageBlob2396860121: no such file or directory
遇到这种情况有两种解决方式
1.先尝试重启docker
2.重启docker不行再尝试重启openWrt
重启docker
点击菜单,docker->概览
点击停止,重新启动
然后再次尝试docker-compose启动
这一次正常启动成功
开放端口
本文的portainer需要开放3037端口
点击菜单,网络-防火墙-通信规则
点击页面底部的添加按钮
如无特殊需求
输入名称和目标端口即可
然后点击保存
可以看到页面多了一个规则
访问Ip:端口
输入用户名和密码,创建管理员账户
点击使用local本地环境
进入本地环境列表
后面的使用可以参考官方文档来
到此为止
-
重新更换了R2S的固件
-
设置docker磁盘的扩容
-
安装docker-compose依赖
-
docker部署可视化容器管理平台portainer
-
解决了docker莫名其妙的问题(重启docker)
注意
遇到死机重启等问题,请先确认TF卡的读写速度(c10以上),和电源供电(5v3a)等,其次查看温度和散热,最后关闭排查一些引起异常的插件
1G的内存适合做一些无数据自动化服务
如MQTT网关,消息通知,PT下载,静态网页登,后续再一一部署和测试
END
推荐阅读
<<树莓派4B(Raspberry Pi For NAS):搭建家用多功能NAS>>