1. 当前位置: 网站首页 >  NAS >  飞牛NAS的Docker到底是干嘛的?镜像、端口映射、目录挂载三个词搞明白,我从一脸懵到装了8个容器

飞牛NAS的Docker到底是干嘛的?镜像、端口映射、目录挂载三个词搞明白,我从一脸懵到装了8个容器

飞牛NAS Docker入门教程:镜像和容器区别、目录挂载、端口映射示意图

刚把飞牛装好那阵子,我在群里看别人聊得火热:什么「Docker部署一个相册」「挂个下载器容器」,说得跟吃饭喝水一样轻松。等我自己点开教程,满屏的「拉取镜像」「映射端口」「挂载目录」,一句话都看不懂,直接关页面装死。就这么僵了一个多礼拜,直到有天我想装个电影库实在躲不开,硬着头皮把那几个名词掰开揉碎搞明白,才发现Docker这东西原理简单得离谱——难的全是黑话。现在我家那台N100上常驻8个容器跑了一年多,这篇就把当初卡住我的那几个词用人话讲一遍,你看完就能动手。

先把最绕的两个词说人话:镜像是安装包,容器是跑起来的程序

Docker圈子里最劝退的就是这两个词,其实拿软件安装类比秒懂:镜像就是一个压好的安装包,里面打包了程序本身、运行环境和依赖,别人做好了放在网上,你下载下来就能用;容器就是用这个安装包装好后跑起来的程序。一个镜像可以同时开出好几个容器,就像一份安装包可以装到好几台电脑上。

再往深一层说,容器和普通软件最大的区别是「一次性」。传统软件装上就卸不干净,注册表、残留文件夹一地鸡毛;容器不一样,删掉就是删掉了,干干净净,想再用的时候从镜像重新开一个,十秒钟就绪。我第一次体会到这点的爽感是装一个工具箱:装错了直接删,重新创建换两个参数,前后不到一分钟,完全没有传统Windows软件那种卸载残留的糟心事。

还有一个词叫「标签」(tag),选镜像时躲不开。同一个软件的镜像有好多版本,最常见的标签是latest,意思是最新版。听着挺好是吧?坑就坑在这——latest是会变的,今天拉的是v2.5,下个月镜像作者一更新,你重新创建容器就变成v3.0了,配置方式可能全变。我后来吃了一次亏,现在能锁定具体版本号的都锁版本,比如明确选2.5.0这种标签,要升级的时候自己主动升,别让镜像作者替我做决定。

装容器时最要命的一栏:目录挂载,不挂数据就丢

如果这篇只能记住一件事,我选这个。容器是一次性餐盒,数据千万别放在餐盒里。你在容器里跑的下载器、相册程序,它下载的文件、生成的配置,默认都存在容器内部——容器一删,全没。这不是Bug,是设计如此。

解法就是「挂载」:装容器的时候指定一个对应关系,把NAS硬盘上的某个文件夹,接进容器内部当成它的数据目录。这样程序以为自己在往容器里写文件,实际上文件落在你NAS的硬盘上。容器随便你删、随便重建,数据在外面的文件夹里纹丝不动。

具体填的时候是「左边的路径对应右边的路径」:左边填你NAS上的真实文件夹,比如我把下载目录建在第一块盘的downloads文件夹里;右边填容器程序认识的内部路径,这个每个软件不一样,得看它的说明文档,比如有的下载器要求必须填/config存配置、/downloads存下载。我踩过的最疼的一次就是早期装下载器,配置目录没挂载,用了俩月,容器重建后下载记录、分类、做种信息全没了,白瞎两个月的整理。后来学乖了,凡是装新容器,配置目录一律挂出来。顺带说一句,这个文件夹得先建在你挂载好的硬盘上,硬盘怎么挂载我之前写过一篇飞牛挂第二块硬盘的全记录,没搞定的先去看那个。

端口映射:左边右边谁是谁,被占了就换一个

容器里的程序也监听端口,比如Jellyfin默认用8096。但容器躲在一个隔离的小环境里,你直接在浏览器输NAS的IP是摸不到它的,得在装的时候做个「映射」:把NAS上的某个端口,转发给容器内部那个端口。

写法是「左边:右边」,左边是NAS对外的端口,右边是容器内部的端口。左边随便你改,右边一般不能动——程序在容器里就监听那个口子,你改了它,它听不见。访问的时候用「NAS的IP加左边的端口」。举个我家的真实例子:装工具箱时默认给我填了8080,结果创建完死活打不开,一查是8080被另一个容器占了,把左边改成18080,右边没动,立刻就通了。所以记住这条:打不开先怀疑端口冲突,换个左边的号试试,成本为零。

另外有个叫「网络模式」的东西,图形界面里常见的两种:bridge和host。新手记住「bridge是默认,端口映射那一套就是为它设计的;host是容器直接用NAS本身的网络,不用映射但端口容易打架」。我全程用bridge,没出过网络上的幺蛾子,你也先用这个。

镜像从哪找、怎么挑:别见着教程就抄

装软件的路子我有三条,按上手难度排:

装法适合谁缺点
飞牛应用中心一键装完全新手版本更新慢,可选项少
Docker管理界面图形化创建搞懂上面三个词的人参数要自己填,得看软件文档
命令行或compose文件玩熟了想批量管理门槛最高,新手期别碰

我的路线就是从上往下走的:头两个月全靠应用中心,后来想要的应用中心没有,才转到Docker管理界面自己创建——在registry里搜软件名,出来的列表看两眼:优先选带官方标识的,再看下载量和最近更新时间,几个月没动的老镜像谨慎碰。搜不到的时候换个名字再搜,很多软件在Docker Hub上用的是作者名加软件名的组合,直接搜软件名搜不到很正常。

网上教程经常直接甩一段docker run命令让你抄,其实那玩意拆开就是前面说的这几件事:-p后面跟的是端口映射,-v后面跟的是目录挂载。你把这两个字母认熟了,九成教程都能看懂它在干嘛,抄的时候也知道哪里的路径要换成自己的。像影视库那种大项目,我之前用Docker装Jellyfin的全过程写在这篇里,照着点就行;再进阶一点的玩法比如让AI自动找片下载,看这篇

我翻过的三个车,你直接绕行

第一个车:容器一多内存就顶不住。8个容器听着不多,但每个程序都要吃内存,我那台小主机是4GB的,全跑起来一度占到八成,卡得网页都开不利索。后来对着监控把两个吃内存大户清了,又把没用的容器停掉(停掉不删,随用随启),才回到舒服的水位。内存到底要不要升级、升到多大,我在NAS内存那篇里实测过,结论是大多数人4GB够用,别先花钱。

第二个车:以为容器跑着就不管了。容器这东西停了不喊你,某天发现相册好几天没备份,进管理界面一看容器早就挂了,重启原因是一次断电后没自动拉起来。现在的习惯是每隔几天扫一眼容器列表,看有没有变红的;重要的容器我会研究下「自动重启」的开关,断电恢复后自己爬起来。

第三个车:没算过电就狂装。这算是隐性成本,容器多了硬盘没法休眠、机器负载常年在跑,电费是会涨的。我家实测下来一个月也就多几块钱,不心疼,但你要是装一堆「看着有趣」的容器吃灰,那纯属给电表打工。具体账我算在NAS电费那篇里,想了解的去看。顺带一句,这套Docker玩法不是飞牛独占,群晖也能玩,两家的差别我在群晖和飞牛怎么选里对比过,Docker生态两边都够用,不用为这个纠结选型。

收尾:新手到底该按什么顺序上手

我的建议就三步,别跳级:

  • 第一个月:只用应用中心,把NAS的基本盘玩明白——存储、共享、备份,这些是地基
  • 第二个月:从Docker管理界面创建第一个容器,选个简单的工具箱软件练手,重点练「挂载目录」这个动作
  • 之后:需要什么装什么,容器数控制在机器扛得住的范围,每个容器都把数据挂出来

核心其实就一句话:镜像随便拉,容器随便删,数据永远挂在NAS的硬盘上。把这句话想通了,Docker在你手里就是个随装随拆的软件仓库,翻车了也就是删掉重来,没有任何沉没成本。这也是我这大半年玩下来最大的感受——NAS的乐趣一半在硬件,另一半真就是在Docker里折腾这些容器。

展开全文


版权说明 手机扫码阅读
版权所有:《数巢笔记》 => 《飞牛NAS的Docker到底是干嘛的?镜像、端口映射、目录挂载三个词搞明白,我从一脸懵到装了8个容器
本文地址:https://www.shunot.com/nas/829.html
除非注明,文章均为 《SHUNOT》 原创,欢迎转载!转载请注明本文地址,谢谢。

发表评论

联系我们

在线咨询:点击这里给我发消息

微信号:master_135

工作日:9:00-23:00,节假日休息

扫码关注