Truenas scale版本默认屏蔽容器网络, 容器无法上网, 通过简单手段解除

字号+ 编辑: 种花家 修订: 德玛西亚 来源: 原创 2023-09-12 我要说两句(1)

国内一般提到NAS, 比较流行的解决方案只有群晖之类的软硬件成品包装商啦。本篇介绍一下Turenas Scale在docker下容器被限制访问外网的解决方案,比较冷门, 折腾truenas和freenas的小伙伴可以看一下。

有的人说了, 直接上个debian/centos的镜像粗野安装就完事了, docker简单搞起来也不费什么时间, 折腾这个何必呢? 小编当初的意图就是想搞个带raid-z的小型磁盘阵列机, 一来truenas有许多好玩的工具, 另一方面写好的维护脚本很给力了。加上docker如果和普通测试机上的无限制play, 简直可以说算是起飞。至于如何解除官方镜像自带的docker容器限制。容在下一步一步的说。这可是在阁下的宝贝NAS里做配置, 请千万不要漏掉任何一步哦。玩崩了可不要怪小编哦~

注意:解禁docker外网访问权限意味着安全方面差一截, 不清楚后果的话,不要在线上服务器里这样搞。

开启ssh服务

首先通过镜像安装完了truenas scale版本后, 肯定是要登录web图形界面的root用户, 再在System settings->services打开ssh服务。开启后别忘了再把auto start那个勾也勾上, 不然下次启动没得玩了。

配置ssh服务

为了安全, 把ssh登录端口改成自定义端口, 改大一些, 免得傻瓜工具的黑客很快扫到。再选择允许root登录, 英文叫 login as root with password

登录truenas的ssh终端

登录环节就很简单了, 只要你知道怎么用终端命令登入服务器, 那这个问题就不大。

ssh root@你NAS服务器的ip -p 端口号

举个例子, 比如NAS服务器被放在内网的192.168.1.8, 端口号6666, 那么命令就变成这个样子:

ssh root@192.168.1.8 -p 6666

接下来输入root密码, 问你是否保存指纹, 输入yes回车, 登入成功。

用vi工具编辑/etc/docker/daemon.json

首先如果你不熟悉vi, 先要脑补一下vi工具的使用。vi和vim是两种操作玩法, 比如x是删除光标所在的字符, i是进入插入模式, ESC是退出插入模式, wq是保存后退出, q是直接退出, q!是不保存退出。

小编假设你已经熟练地操作vi了, 那么你使用这个命令:

vi /etc/docker/daemon.json

开始编辑这个文件。如果你发现这个文件压根就没有,请先创建/导入一个硬盘阵列池。总得有一个基本磁盘阵列,否则TrueNAS脚本不会自动给你创建的。

把iptables, bridge这两个字段, 统统删掉。最终文件变成了这个样子:

{"data-root": "/mnt/pool1/ix-applications/docker", "exec-opts": ["native.cgroupdriver=cgroupfs"]}

之后按esc敲wq保存。保存之后,为了保证truenas重启或者碰了truenas web面板某个功能之后不会以默认的配置覆盖掉这个文件, 你需要运行下面的命令来复制一个副本。

cp /etc/docker/daemon.json /etc/docker/daemon.open.json

编辑docker服务配置文件

vi /usr/lib/systemd/system/docker.service

找到[Service]配置段

ExecStart=/usr/bin/dockerd

在那后面插入一行

--config-file=/etc/docker/daemon.open.json

也就是注入你刚才写完的新配置。

那么不出意外的话, 这一行应该变成了

ExecStart=/usr/bin/dockerd --config-file=/etc/docker/daemon.open.json -H fd://

至少小编的NAS配置文件就是这个样子的。接下来别着急,还没完事……

重启docker服务

systemctl daemon-reload
systemctl restart docker

然后你再进docker测一下, 例如curl执行一下看看出的啥? 应该是简单粗暴地解决了这个问题。

注意事项

如果你不小心更新了基本truenas scale系统, 以上步骤还需要重新做一遍。

完结, 撒花~

阅完此文,您的感想如何?
  • 有用

    5

  • 没用

    0

  • 开心

    1

  • 愤怒

    0

  • 可怜

    0

1.如文章侵犯了您的版权,请发邮件通知本站,该文章将在24小时内删除;
2.本站标注原创的文章,转发时烦请注明来源;
3.交流群: PHP+JS聊天群

相关课文
  • Linux系统下word文档转成pdf的办法

  • ubuntu和debian安装nginx或者tengine报错, 找不到pcre依赖库的解决办法

  • linux终端下借助awk命令查询筛出网站access.log日志里的统计信息

  • 常见的web中间件请求返回状态码

我要说说
网上宾友点评
1 楼 IP 61.149.222.150 的嘉宾 说道 : 1675598294
你简直就是个人才