容器的实用技巧(二)
上一篇文章介绍了Truenas scale容器的实用技巧,扩展社区 Apps。今天讲讲如何在Truenas的容器环境下使用docker。Truenas 提供的容器环境是K3s,这个技术已经广泛应用,但是主要是云端的优化,为了安全和管理,一般都是把需要的服务端口暴漏,然后通过容器自带的代理转发。虽然也有hostnetwork,但是不好用。另外原生容器的自定义也比较复杂,我们家庭或者个人使用的时候,有些apps是会需要hostnetwork,否则没办法正常工作,用简单的 docker的时候也可以很方便自定义。
登录管理面板
找到Apps 项目
点击启动docker镜像
在右上角处
镜像相关设置
这个实例是一个假设需要hostnetwork的docker设置,如果仅仅需要需要暴漏服务就常规设置,仅仅需要端口转发就可以了。
第一步:设置容器姓名
我这里以nginx作为例子
第二步:设定镜像来源版本
第一个镜像来源:由于truenas都是用的docker官方镜像,所以这里一般输入名字就行了。个人镜像一般就是 someone/imgs 这样写的,具体可以在docker官方仓库查到。
第二个是镜像的版本,一般tag就是用来指定镜像版本的。我们这里默认最新,可以根据需要指定办法。比如 1.2 , 1.6 ......
第三条是建议选择如果本地有镜像就不在远程抓取;
第三步:容器cmd 和变量
这里我们跳过,一般不需要更改。
第四步:容器环境参数设定
这里我们也跳过, 如果有需要你可以根据跑的程序更改。
第五步:容器网络相关设定
网卡接口
网卡接口: 根据你的设备选择,我选了其中一张卡;
ipam 设定:选择dhcp 动态或者静态ip,我这里设定的静态方便管理。
dns设定 忽略容器dns
静态路由
设定好这些就行了,下面的设定目前不需要改动。
第六步:端口转发
这里我们用的hostnetwork的模式,这个设置一般就不需要改动,这个pod相当于跑在一个虚拟机上。直接跳过。
第七步:存储设定
这部分是容器存储持久化的相关设定,把需要持久化的数据制定相关路径挂载就行了。
我这里的实例是一个路径的简单挂载,当然也可以挂载卷设备。
第八步:建议打开这两个 tty 和 stdin
默认直接下一步也没毛病,需要的话随时回来改一下就行了,我一般选择打开字符和标准输出。
第九步:新容器的建立方式
杀死原来容器再建立,或者替换,根据需求选。
第十步:gpu设置 这个默认没啥可选的
第十一步:资源限制 根据需求搞一下
第十二步:门户设定 这个对于我们来说默认即可
最后一步:确认保存
等待拉取镜像,启动容器
红框里面的就是我跑的docker镜像
可以看到这个nginx 容器已经在运行了!
PS:
文件挂载注意事项: 如果是卷设备没有权限问题,如果是path需要相关目录有权限,根据官方文档,要设定为 apps 有相关权限。
网络相关设定: 注意网络接口的设定
创建 macvtap 接口,注意设置为 bridge 模式(默认为 vepa 模式),vepa 模式下创建在同一宿主机之上的多个虚机之间网络不通(除非外部交换机支持 hairpin 功能)
所以这个docker镜像选的网口不要和nas管理口是一个,有的朋友可能只有一个网口的时候就不能用这种方法了,只能采取容器内部网络和你的lan在一个子网的办法,这样的优点就是你不需要折腾这么多了,至于安全问题家用问题不大。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~













Martin-plus
校验提示文案
Martin-plus
校验提示文案