有的人說了, 直接上個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這兩個字段, 統統刪掉。假如你把盤陣路徑設置爲/mnt/pool1, 那麽最終文档變成了這個樣子:
{"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執行一下看看出的啥? 應該是簡單粗暴地解決了這個問題。
修改方法總結
基本修改方法知道了,爲了快一點完成上文所述的操作,可以用以下步驟簡化完成:
tee /etc/docker/daemon.open.json <<-'EOF' {"data-root": "/mnt/你的盤陣名稱/ix-applications/docker", "exec-opts": ["native.cgroupdriver=cgroupfs"]} EOF
vi /usr/lib/systemd/system/docker.service
將13行附近的
ExecStart=/usr/bin/dockerd -H fd://
改爲
ExecStart=/usr/bin/dockerd --config-file=/etc/docker/daemon.open.json -H fd://
執行
systemctl daemon-reload && systemctl restart docker
注意事項
如果你不小心更新了基本truenas scale系統, 以上步驟還需要重新做一遍。
完結, 撒花~