什么恩山论坛之类的 NAS/软路由相关社区,又或者是一些视频博客文章一类的,提到 NAS/软路由基本必定会提到“玩 docker”、“内置 docker”之类的词汇,但是说实话个人感觉这些概念听起来还挺怪的

Docker 和(软)路由/NAS 是什么强关联的东西吗?
Docker 有什么特别值得“玩”的东西吗?
为什么一定要在软路由/NAS 上玩 Docker ?

虽然帖主只是个小白运维,但真的感觉这样的一种“社区文化”现象很奇葩,不局限于各种主流 NAS/软路由 社区,总感觉一进到这类型社区里“docker”这个词就变成了 很神秘很高大上的东西 ,各种文章视频都要大谈特谈“哇我还能跑 docker 这是多么神奇美妙的一件事情啊”、“哇 docker 好多镜像好好玩啊”,但本质上不就只是一个普通的用户态虚拟化工具,绝大部分主流 Linux 发行版都能直接安装,这和(软)路由又或是 NAS 之类的东西真的有什么强关联吗
而且很多文章也没见玩啥复杂的东西光在那拉各种包装常规软件的镜像下来玩了(说实话主流 Linux 发行版不都能做到直接运行这些应用),和弄一台普通机器普通地安个 Linux 有什么区别吗,和所谓软路由和 NAS 这些词的强关联性到底在哪,再说这么喜欢玩 Docker 怎么没见有人来玩 K8S (流汗
此外不仅是 Docker 变得很“高大上”这件事情很奇怪,这类型社区还有各种奇葩生造概念(比如说所谓“旁路网关”,属于是 非严谨词汇 + 软路由小白必经的脱裤子放屁网络架构 ),不知道是不是因为太多野路子出家的人占据了社区把社区风向扭转成现在这个不专业的样子

能不能看完再回复, 我什么时候说过我觉得 docker 很神秘 了,我说的一直都是相关社区这种把 docker 奉为圭皋的氛围让人疑惑好吗?是我对此类社区的氛围的总结,不是我认为 docker 很高大上(流汗黄豆

关于“旁路网关”,我简单补充两句,不懂的自己谷歌或者找 GPT 补课,首先这是一个非正规词汇,其次绝大部分“旁路网关”白白浪费计算资源做分流转发让数据包白跑一趟,嫌自己的网络性能太好了想上点压力所以搞点负优化故意让数据包绕远路是吧(很难不流汗😅),而且这么多人都在说“小白”是软路由用户大头,那想必社区的“旁路网关”的流行是故意把网络架构搞复杂来为难小白来了是吧👍

哪有那么多为什么,这么喜欢问为什么,不如去百度知道跟知乎。

有人用,有人喜欢,是别人自己的事情。

你不喜欢不用不就行了,这事儿有啥在公共空间讨论的必要么

跑 docker 比 home server 能少敲几个字罢了

玩 docker ,特指,不用命令行,只用图形界面操作,使用预装好的 docker 程序,跑 docker

首先不是所有人都会安装 docker
其次 openwrt 对于 docker 支持很差,之前都不预转 docker ,部分预转 docker 的,随便操作一下系统分区扩容,就被玩炸了,得重装系统
最后很多人并不是程序员,很多简单的问题都不会解决,随便碰两下,整个系统只能重装

在没有科学的环境下能拉下来镜像,对于很多程序员都是一个棘手的问题
简单配置一个代理,很多人都会被一个括号,一个分号折磨很久

另外,旁路网关,怎么就“脱裤子放屁”了
我刚把现有网络改为旁路由模式

我理解这是一种因其本身 价值/功能 有限,创造额外 价值/功能 或者复用设备的做法,做到最后就是 All In One ,跟服务器也没有什么区别了

没觉得有什么问题,对于 Docker 生态有好处。

先说第一点,你玩过 NAS 和软路由吗? docker 大大提高了 NAS 和软路由的可玩性你知道吗?第二点,你提到的这些社区,有人/帖子说过 docker 就是很神秘很高大上的东西吗?第三点,NAS 和软路由与普通的 linux 发行版的区别你知道吗?最后你的总结完全符合你自己对自己的定位:小白运维

你猜猜有 NAS 用户里有多少不是运维?不知道什么是 docker ?甚至不知道什么是 X86 ?
我现在就是虚拟机里开来个 op 当旁路由/旁路网关,很好的解决了问题。不知道为什么说是脱裤子放屁,又不是每个人都需要或者有条件在主路由上折腾。

因为很多应用都被制作了 docker 镜像,让设备应用场景得到了拓展,可玩性更高;并且由于 docker 的特性,只要硬件性能 ok ,可以按任意东西,也不会扰乱原系统。
你既然是运维,就应该知道如果每个系统的直接部署到原系统,每个应用都会生成一些配置或临时文件,如果需要卸载某个应用,或应用间产生了冲突,那简直就是噩梦。
因此一个设备或系统支持了 docker ,就表示可玩性增高了,还易于使用,为什么能不开心呢?

这么一想玩 Docker 才是真的体现了 Docker 设计之初的目的,小白点两下就能装上各种服务,不需要操心依赖地狱。至于底层是 Docker Compose 还是 K3S 甚至是 K8S ,才是不重要的东西,商用/三方系统都尽可能的不让用户关心这些内容。

因为在这些设备上 docker 的确好用啊,很多人装二进制都费劲,更别说编译安装了
软路由和 NAS 非专业人也会玩,Linux 服务器玩的人就少多了。

大多数人 NAS 可能是家里第一台服务器设备,而成品 NAS/NAS 系统一般提供图形化界面来管理映像/容器,那 NAS 和 Docker 关联在一起并不奇怪。总不能让刚接触 NAS 的新手们说你们应该去买台 Linux 服务器来跑容器吧。

我倒是没觉得这些概念有啥奇怪的,也不觉得 Docker 在 NAS 圈有变得高大上,更不能理解为什么 Op 这么执念于所谓的 "专业性"。

很多 NAS 系统本身功能并不完善,如果让小白用户自己安装运行环境,很可能分分钟就把系统搞崩。相比之下,Docker 提供了一种更稳定、便捷的解决方案。

很多教程都是基于 docker 的啊,你指望一个跟教程操作的小白自己去配置 docker 吗

因为好玩,项目多。另外如果是用传统 Linux 发行版做 NAS 系统,很多服务要靠 docker 来实现。

  1. 我玩过的东西包括但不限于 nas 和软路由; 2. 我更多是很好奇社区里“逢 NAS/软路由 必 docker” 的奇葩文化的形成; 3. 本质区别我说实话不是很大,可以说和普通 Linux 没什么区别,尤其是现在很多买个类似“n100 双网口主机”的配置回来搞 NAS/软路由的,你觉得区别很大那是你的问题

docker 最符合普通用户对于安装程序,删除程序的理解。
能玩 docker = 能装 app

说实话我并不否认 docker 的好用(我自己也很喜欢 docker ),我真正疑惑的是 docker 和 软路由/NAS 之间的直接关联性以及相关社区为什么“逢 软路由/NAS 必 docker”

一点毛病没有,自己菜还怪社区,docker 有什么好神秘的

我觉得你说的第一段话还是比较中肯的,不过我个人认为不管是什么社区至少主流的声音还是需要有一些“专业性”比较好

docker 在我看来就是给小白快速部署开箱即用的,主要不就是一个方便吗,怎么会高大上呀。但是现在很多比较新的项目官方文档里只有 docker 的部署方法,有的甚至连 linux 的二进制程序都没有发布,要自己编译

因为很多非专业人士也玩软路由和 nas ,如果不用 docker 学习成本不就高了吗。而且 docker 可以解决兼容性问题,对于小白而言一旦报错大概率就慌了,很多人不会去看日志也看不懂报错。为了照顾这一部分小白 docker 都帖子和以 docker 发行的项目就越来越多了

Docker 和软路由/NAS 社区的关联性是:
抹平了底层系统,绝大多数情况下,不管你跑的是普通 Linux ,还是 OpenWRT ,还是 QNAP ,群晖还是飞牛……
只要你能跑 Docker ,你就能跟着大部分教程,将一个东西跑起来。

额,NAS 和软路由一般都不会只做一件事,例如软路由机器上有人可能还想安装 AdGuard Home 去广告,NAS 里存了文件/照片/视频,想要方便使用这些资源,自然需要安装类似 immich/jellyfin 的软件。 而安装这些软件简单的方式就是 Docker 啊,这有什么奇怪的....

没逛过 NAS 论坛,刚入手 NAS 一翻探索后发现 docker 是除文件存储外用的最多的,跑 gitlab 存个人代码,跑下载工具,跑些小工具,非常实用,当个低成本 server

主题没看完就开始喷,你是机器人回复?

说白了,就是家里资源有限,不允许有一台单独的家庭服务器,刚好 nas/软路由 这类设备由于 7*24 小时开机、静音、能耗低等综合原因,可以当作家庭服务器的算力,而且用 docker 对于非专业运维能省心很多,啥玩意儿都可以拉下来就跑,不用担心环境配置问题,如果有 1panel 之类的可视化运维面板就更好了。

现在不用 docker 才奇葩, 如果不能 docker run 那这个工具我都懒得装

有什么问题吗?社区文化就是折腾,折腾就叫玩,就像之前的刷机的社区文化一样,参与的人不是每个人都有很强的专业技能,甚至很多都是小白。很多连 cpu 架构都分不出来的小白。

在这个前提下,先回答你第三个问题

为什么一定要在软路由/NAS 上玩 Docker ?

因为 nas 或者软路由的 cpu 架构,操作系统组合,包括系统依库版本和第三方闭源软件种类太多了,任何一个软件想同时能够在任何一个组合下正确编译是几乎不可能的事情,而 docker 提供了一个忽略底层依赖直接在上层快速构建一个软件的作用,大大降低了上手或者使用一个软件的难度,所以要在 nas/软路由上用 Docker

再回答你第二个问题
Docker 有什么特别值得“玩”的东西吗?

所谓的玩不是只玩 docker 本身,你觉得谁没事儿干天天玩 docker ,玩的是 docker 可以提供的软件或者服务,这些服务不乏很多大佬自己为爱发电维护的有特殊功能的,甚至很多有相同功能的软件或者服务有很多镜像可以选择,就像当年的刷机党一样,选择自己喜欢的 rom ,不断尝试各种奇奇怪怪的 rom 就是一种玩。类比到这里同理。

最后回答第一个问题
Docker 和(软)路由/NAS 是什么强关联的东西吗?

因为对于大多数普通爱好者来说,家里的 nas 或者软路由是第一台真真意义上属于自己的“服务器”,结合以上两个问题的答案,Docker 和 Nas/软路由就成了强关联性的东西了

对是这样,我同事是小白,就只会用 docker 。

我就不喜欢 docker 。dnf/apt install nginx 多方便,docker 安装 nginx 还有要查 -v 怎么写。redis 就更复杂。增加了学习成本 写一堆-v 也不方便。

因为买了一个设备,可以用 docker 开发出其他潜力,所以很多人就喜欢这种能使用 docker 的特性,你用不到,何必为别人疑惑呢

有些运维出生的程序员,为了彰显自己 nb 的终端技巧,很喜欢直接把代码物理部署在 server 上,然后每次部署都得手动 ssh 上去 git pull 在用 supervision restart ,不使用 docker ,不使用自动化 ci

然后日志也不接入 sentry 或者 elk 这类日志聚合系统,就喜欢 ssh 上去然后 vi 斜杠搜索 error ,还要求其他组员也和它一样用 ssh 部署和 debug ,典型没苦硬吃,还拉着下属一起吃,简直了

对我这种小白来说 docker 就是个应用市场

做了这么多年,没遇到过这么牛逼的运维同事。 恰恰相反,运维是最喜欢容器化的。