路由器竟然比NAS还厉害?!小米7000及万兆路由器Docker实战全指南
首先声明,真不是标题党。一些几百块钱的单盘位NAS,使用体验还真未必能超过小米这两款高端路由器。全文约7000字,详细阅读需15分钟左右,是目前全网唯一小米路由器7000/万兆的docker详细使用教程,强烈建议这两款路由器的用户先收藏。在学会之后,保证你会打开一扇通往新世界的大门,欲罢不能。。。。。
作为目前最炙手可热的两款高端路由器,小米万兆路由器和小米路由器7000获得了大量小伙伴的青睐。虽然它们都内置了Docker功能,但很多用户却完全不了解Docker是什么。对于Docker有啥用,具体该怎么用则更加无从下手。
作为目前最炙手可热的两款高端路由器,小米万兆路由器和小米路由器7000获得了大量小伙伴的青睐。虽然它们都内置了Docker功能,但很多用户却完全不了解Docker是什么。对于Docker有啥用,具体该怎么用则更加无从下手。
什么是Docker
Docker是一个开源的容器应用引擎,里面可以安装不同的“容器(Container)”。每个容器本质上都是一个独立应用程序。所以对于一般用户来说,你只要把docker理解成一个应用程序平台,在其内部可以安装很多个应用,就可以了。
关于SSH
本教程通篇完全不涉及解锁SSH操作。虽然目前市面上已经有这两款路由器的SSH方法,但个人认为对于普通用户来说意义不大,因为大多数容器应用都不需要SSH即可正常安装使用,并且刷机也比较复杂,还伴随一定风险。如果实在需要SSH,请参考其他教程。
关于路由器性能
虽然这两款路由器的硬件性能已经十分强大,但本质还是ARM架构的硬路由,并且内存非常有限,和X86架构的NAS或软路由性能差的很远。就像再NB的SUV也是SUV,它可以帮你拉一些日常货物,但绝对不可能代替卡车跑运输。
所以如果在这两款路由器中安装过多容器应用,或执行重度任务时,会导致内存占用过大,引起路由器本身断流/发热/死机等不稳定现象。路由器首先还是要做好WiFi信号覆盖的本职工作,docker功能只是锦上添花,强烈建议大家不要猛怼,酌情使用。
开始前的准备工作
开始使用小米万兆和7000路由器的docker之前,需要进行一些准备工作。必备的软硬件有:
已经配置好并正常运行的小米万兆或7000路由器一台,必须作为主路由,不能工作在AP模式下。
一台win10或win11电脑,wifi接入运行docker的路由器
Disk Genius磁盘管理软件,安装在电脑上(网上随便搜一下就有)
一个U盘或移动硬盘,需要长期插在路由器上,不能取下。 如果需要作为NAS储存文件,可以用大容量的3.5移动硬盘。如果只是需要Docker功能,不储存文件,可以选择M.2固态配硬盘盒。
不建议使用普通U盘,速度太慢。不建议使用固态U盘,虽然速度够快,但长期使用发热太严重,会降速卡顿。
安装Docker
把移动硬盘(或U盘)插在电脑上,打开Disk Genius,选中盘符,右键点击格式化,然后在弹出菜单中单击“格式化当前分区”。注意,此操作会清空硬盘中原有的所有数据,请一定提前做好备份!
选择Ext4文件系统,簇大小默认,卷标随意填写,检查无误后点击下方的格式化。
格式化完成后,将移动硬盘(U盘)从电脑上弹出并拔下,然后插入路由器的USB口。提醒一下,如果是3.5寸移动硬盘,最好用带独立供电的线材,确保稳定。
打开我的电脑,点击顶部菜单栏右侧的三个点,在弹出菜单中点“映射网络驱动器”。
在映射网络驱动器页面,随便选个盘符,然后在文件夹中输入192.168.31.1(也就是小米路由器的默认管理IP),点击后面的“浏览”。在弹出的浏览文件夹页面中,展开路由器IP并选中挂载的硬盘,确认完成。
现在,电脑上就出现了路由器挂载硬盘的盘符。双击打开后,看到小米路由器会默认生成两个文件夹,分别是lost+found和来自百度网盘,不用去管他。
打开电脑浏览器,输入小米路由器的IP地址192.168.31.1并输入管理密码,进入设置页面后,点击上方的“储存功能”并向下滚动页面,创建虚拟内存。建议选择256MB(万兆路由器选512MB)。
虚拟内存创建成功后,可以看到状态:
拉回页面最顶端,点击DOCKER图标,点击“安装Docker”。
打开运行Docker开关,并安装第三方管理。
现在,Docker就已经被安装在路由器中了。有两个方法进入Docker管理页面。方法一:在路由器储存功能-Docker页面中点击“管理Docker”:
方法二:直接在电脑浏览器中输入IP+docker管理服务端口号,也就是
小米路由器docker管理页面的初始用户名和密码都是admin。输入后就可以登录了。初次登录后,强烈建议马上通过右上方的账户——修改密码把初始密码换掉,确保安全。
更换阿里云镜像源 & 安装docker-cli命令行工具
小米路由器7000和万兆都使用了开源的simple docker图形化管理工具。实话实说,很不好用。不仅易用性和很多成品NAS自带的docker管理没法比,而且还存在不少问题和bug,比如在无法创建host网络模式下的容器,无法修改环境参数等。
另外,由于众所周知的网络原因,很多时候我们都无法顺利从docker官方源拉取镜像,因此使用阿里云替代官方源,并安装docker-cli命令行工具是必须的。
进入simple docker页面后,首先点击左侧的容器管理,在容器中找到simple docker,并在最右侧点击终端命令按钮。
进入终端控制台后,输入以下命令后回车确认:
sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
再输入以下命令后回车确认:
现在,docker官方镜像源已经被替换成阿里云镜像源了。再输入以下命令回车后确认,安装docker-cli:
大概几秒钟后,可以看到 OK:50MiB in 19 packages###的提示,说明docker-cli就安装完成了。
设置容器安装和挂载路径
仍然回到simple docker管理页面,点击左侧的储存管理,然后点击右侧“操作”菜单下的详情按钮:
在弹出的详情信息页面,就可以看到所有容器的挂载点都被设置在一个非常深的文件夹中,具体路径如下:
这个设定非常反人类,主要存在两个问题:
第一,路径太长,完全无法记忆,非常容易引起混乱。
第二、用户没有完全访问权限,无法直接修改该路径下的文件。后期一些容器,如Home Assistant和小C等,需要直接在安装目录中更改配置文件时,根本无法实现。
所以我们需要将容器的安装路径设置在更加合理的位置。从电脑端打开挂载在路由器上的硬盘,并在根目录中新建一个名为docker的文件夹:
以后我们就把所有的容器都安装在此文件夹中,并以容器名称来命名各自的文件夹。这样一来,不仅路径更加清爽,而且也有全部的读写权限,方便需要时对配置文件进行修改:
接下来再次回到simple docker的挂载点详情信息页面,在挂载点路径中,找到路由器硬盘根目录的路径。比如我这里就是:
只要在后面添加/docker/容器文件夹名称,就是以后我们安装容器时的真实位置。以homeassistant为例:
/mnt/usb-7885b90b/docker/homeassistant
在电脑挂载访问的对应位置就是:
彻底搞明白这个逻辑之后,以后在安装容器时,就会变得非常容易。到此为止,在小米路由器中部署容器应用的前期准备工作就全部完成了。接下来,就开始为大家详细讲解一些常用容器的具体安装方法。
Home Assistant
无需多说,最著名的智能家居控制平台,几乎是所有智能家居用户必备。在docker中安装时,由于只能使用core版本(无add-on和supervisor),所以需要后期在文件夹中添加HACS应用商店。
进入Simple docker的容器管理页面,点击simple-docker容器右侧的终端命令按钮,进入终端控制台。注意,以后所有的容器安装都要在这里进行,所以后面就不再重复讲解这个步骤了。
输入以下命令后回车确认。HASS镜像比较大,所以等待时间稍久是正常的。
docker pull homeassistant/home-assistant
在docker文件夹下新建一个homeassistant文件夹,在homeassistant文件夹下再新建一个config文件夹:
终端输入以下命令后回车确认。这里一定要注意,你需要把下面命令中-v挂载路径后面的usb-XXXXXX更换为自己的真实地址,否则会无法找到路径。后面安装所有其他容器时,都是一样的道理,我就不重复提醒了。
docker run -d --name homeassistant --restart always --net=host -p 8123:8123 -v /mnt/usb-xxxxxxx/docker/homeassitant/config:/config -e TZ=Asia/Shanghai -e PUID=0 -e PGID=0 homeassistant/home-assistant
回到simple docker的容器管理页面,可以看到HASS已经在运行中了:
在电脑浏览器地址栏中输入以下IP地址,就可以访问HASS页面:
后面都是基本操作,不需要多说了。设置账号密码,选择地址时区等等之后,直接进入主页。进入主页后,点击左下角的用户名,然后在右侧将高级模式打开:
在/docker/homeassistant/config文件夹中,再创建一个新文件夹,将其命名为customer_components:
从Github下载最新版本的HACS插件,地址如下。进入后下拉页面,展开Assets,找到hacs.zip并下载。
https://github.com/hacs/integration/releases
下载后解压缩,得到hacs文件夹。将hacs文件夹整体放入上面的customer_components文件夹中:
回到HASS管理页面,点击左下角的配置,点击系统,然后点击右上角的开关图标,重新启动Home Assistant。
稍等片刻,重启完毕后,仍然点击左下角的配置,然后点击右侧“设备与服务”。
在集成页面中,点击右下角的+添加集成,然后弹出窗口的搜索框中输入hacs,并点击下方的hacs
勾选所有项目后提交。
点击进入Github网址,然后把下面的key记录下来并填入授权页面后,点击授权:
注意,由于网络原因,以上授权过程遇到某个页面无法刷出是非常常见的。这种情况下,请大家反复多尝试几次,或者更换时间,或者清空浏览器缓存后再试。当完成后,就可以看到成功提示页面:
转回HASS主页,点击完成,并再次重启HASS,就可以在侧边栏中看到HACS,说明HACS商店安装完成!
由于本篇教程主要是讲解怎样通过docker安装各种容器应用的,因此关于Home Assistant的部分就讲到这里。相信大家对后面如何通过HACS安装米家及各种智能家居平台集成的操作,都已经非常熟悉,就不再浪费篇幅。
Nas-Cab
Nas-Cab是一个非常出色的国产NAS面板应用,也是袋鼠叔叔自己正在使用并且十分推崇的,包含功能强大的相册管理(人脸识别/物品识别/地点/智能相册),影视管理及文件管理/共享功能。
可以说,装好Nas-Cab之后,你的小米路由器就变身成为了一台真正的NAS,而且某些版块的使用体验甚至超越成品NAS。关于这款应用更多的信息和详细使用方式,可以参考我的专栏文章:
这款应用支持全平台部署,下面讲解小米路由器docker中的安装方法。首先仍然进入simple docker命令行工具,并输入以下命令后回车确认:
由于nascab可以用来管理全盘文件,因此需要在路由器的挂载硬盘中新建一个文件夹,并在nacab安装时给予其完全读写能力。我把这个文件夹命名为NAS,大家也可以根据自己喜好随意命名。以后我们就专门用这个文件夹来储存照片/电影/视频等数据。
接下来还是在docker文件夹中新建一个nascab文件夹,用于nascab容器的安装:
回到simple docker命令行工具,输入以下命令:
docker run -d --name nascab --restart always --net=bridge -p ****:21 -p ****:443 -p ****:80 -p ****:90 -v /mnt/usb-********/docker/nascab:/root/.local/share/nascab -v /mnt/usb-********:/NAS ypptec/nascab
这段命令中有两个地方需要注意修改:
nascab的网络模式为普通bridge模式,所以映射端口可自行设置,自己喜欢怎么写都可以,一共四个端口,只要不冲突就行。
usb后面的标识符要改成自己的。由于有两条挂载目录(一条是容器的缓存位置,一条是授予NAS文件夹读写权限),需要修改两处。
安装完成。输入路由器管理IP+自己设置的容器内部80端口映射端口号,进入页面,即可开始使用。
关于Nas-cab的具体使用教程,我在之前的专栏文章中已经写的非常明白了,这里不再赘述。
Lucky
Lucky是一款非常出色的国产开源反向代理应用,主要提供反向代理,DDNS(动态域名解析)等网络服务。对于有公网IP,并且有公网访问需求的NAS用户来说,是必不可少的。
这款应用的具体用法我也写过专栏文章,请参考:
进入simple docker命令行管理页面,并输入以下代码后确认:
输入以下代码运行(注意挂载盘名称替换成自己的):
docker run -d --name lucky --restart always --net=host -p 16601:16601 -v /mnt/usb-********/docker/goodluck:/goodluck gdy666/lucky
安装完成。输入路由器管理IP+端口号16601进入Lucky页面:
在lucky内部正确配置DDNS和反向代理后,可以轻松,安全的通过https从外网访问小米路由器docker中的任意服务:
Alist
大名鼎鼎的Alist应该不需要过多介绍了。一款强大的网盘挂载应用,几乎所有NAS用户都在用,用过的都说好。支持市面上所有主流网盘。
下面开始安装。进入simple docker命令行管理页面,并输入以下代码后确认,拉取镜像:
输入以下代码运行(注意挂载盘名称和端口号替换成自己的):
docker run -d --name alist --restart always --net=bridge -p *****:5244 -v /mnt/usb-********/docker/alist:/opt/alist/data xhofe/alist
alist安装完成。使用路由器IP+端口号进入,没有任何问题:
关于alist的使用方法,我以前也写过专栏文章介绍,请参考:
其他容器应用的安装方法
当然,除了以上这些之外,docker容器应用还有很多很多。其实经过上面的操作,大家应该能总结出一个规律,就是我们只需要知道一个容器应用的名称,挂载路径,映射端口,网络模式及环境变量之后,都可以通过simple docker的命令行工具将其轻松部署在小米路由器7000和万兆中。
我把代码格式写在这里,大家只要遵循这个格式,按照每个容器应用的说明,就可以自行安装,非常简单。
第一步:创建安装文件夹(这个不用多说了)
第二步:拉取镜像,命令格式为
docker pull 镜像名称
第三步:按照容器应用指定的参数启动容器,命令格式为:
docker run -d --restart always #启动容器,并且在遇到非正常退出时总是重启容器
--net=bridge #bridge模式为常用的桥接模式,有些容器则需要使用host模式
-p 0000:0000 -p 0000:0000 #端口映射,前面为主机端口,后面为容器内部端口,需要几组就写几组
-v 主机文件/文件夹:/容器装载路径 #需要几组就写几组
-e 环境变量名称=值 #环境变量设置,需要几组就写几组
镜像名称 #最后要加上镜像全名
第四步:电脑浏览器直接访问路由器IP+容器管理端口:
http://192.168.31.1:端口号
总体来说,虽然小米路由器7000/万兆的性能用来跑docker确实有限,但同时运行五六个轻量级容器应用没有任何问题,就当是买路由器赠送的功能,也绝对算是超值,希望大家都能够体验到docker的乐趣。
我是袋鼠叔叔,一个拥有100+智能设备的全屋智能家居博主。关注我,了解更多关于智能家居/家电的那些事儿。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
ilray
校验提示文案
只有值友直邮12536
校验提示文案
张小原
校验提示文案
英俊潇洒渣渣辉
校验提示文案
wzpok
校验提示文案
到处看看君
校验提示文案
值友2751450319
校验提示文案
小胖菲菲
校验提示文案
烧仙草orz
校验提示文案
morok2008
校验提示文案
morok2008
校验提示文案
折翼的奥尔良烤鸡翅
校验提示文案
值友1519316138
校验提示文案
破音Eri
校验提示文案
给你的承诺
校验提示文案
lionCH
校验提示文案
平静的幸福w
校验提示文案
值友7436165736
WARNING: Ignoring 去看看 No such file or directory
2 errors; 17 distinct packages available
换源有错误,一直这个提升怎么解决?
校验提示文案
捂耳听风L
校验提示文案
雨亦浓
一个是创建homeassistant目录,你的命令行里输入的是homeassitant
一个custome_components目录,你写的是customer_components
校验提示文案
化学爱迪生
校验提示文案
忙碌的小面包
校验提示文案
值友3453462294
校验提示文案
秦政
校验提示文案
lyls
校验提示文案
值友9100704988
校验提示文案
值友9100704988
校验提示文案
值友6380370258
/data # docker run -d --name homeassistant --restart always --net=host -p 8123:8123 -v /mnt/usb-32727677/docker/homeassitant/config:/config -e TZ=Asia/Shanghai -e PUID=0 -e PGID=0 homeassistant/home-assistant
docker: Error response from daemon: authorization denied by plugin opa-docker-authz: request rejected by administrative policy.
See 'docker run --help'.
校验提示文案
值友6380370258
校验提示文案
江火似流萤M_
校验提示文案
江火似流萤M_
校验提示文案
cvcome2010
校验提示文案
爱酱的粉
校验提示文案
真的什么都想买啊
校验提示文案
值友8598780526
校验提示文案
值友8598780526
校验提示文案
值友8278103777
docker: Error response from daemon: authorization denied by plugin opa-docker-authz: request rejected by administrative policy.
See 'docker run --help'.
求大神帮助
校验提示文案
值友4179102184
校验提示文案
雨亦浓
更新一下,我也打错了
校验提示文案
雨亦浓
一个是创建homeassistant目录,你的命令行里输入的是homeassitant
一个custome_components目录,你写的是customer_components
校验提示文案