前言

上篇文介紹如何在ROS 7.4beta 使用 container 運行 pi-hole , 不過 AdGrard Home 有支援廣告封鎖規則 和有快捷熱門服務封鎖開關, 所以我最後還是重投AdGrard Home 懷抱。
不過, 要在 ROS 7.4 beta5 安裝 AdGrard Home 卻不像 pi-hole 一樣容易, 麻煩程度反而比 ROS 7.1 rc4 有過之而無不及!

因為運行 AdGrard Home container image 時, log 顯示因權限問題無法新增文件夾, 繼而令 image 運行失敗
img

下文 (設定掛載點部分) 就會遘解如何可以解決問題, 順利運行 AdGrard Home, 還我一個潔淨的網絡!


事前準備

ROS 7.4beta 有很多 container 服務更新, 在舊版 7.14 rc4 佈署的 AdGrard Home 無法運行, 建議重新設定和部署 Container Image

  • 移除舊 Image, 設定和掛載點
    (會一併把掛載點的文件刪除)
1/container/remove [find]
2/container/envs/remove [find]
3/container/mounts/remove [find]

另外, 要在新版 ROS 使用 Container , 你要先

  • 更新 ROS 版本 > 7.4 beta1
  • 安裝 Container package , 檔案包含在Extra packages

啟用 container 服務

  • Device-mode 啟用 container
    /system/device-mode/update container=yes img
    輸入指令後要把 「router 關機」或「按下 reset / mode 按鈕」才會成功

  • 查看是否成功啟用
    看到 container: yes 代表成功

1system/device-mode/print

img


設定虛擬介面

虛擬介面可沿用舊版的, 如沒有的話可用以下指令設定

  • 建立 veth interface 及設定 IP
1/interface/veth/add name=veth1 address=172.17.0.2/16 gateway=172.17.0.1
2/interface/bridge/add name=dockers
3/ip/address/add address=172.17.0.1/16 interface=dockers
4/interface/bridge/port add bridge=dockers interface=veth1

新增文件夾

目前 ROS v7.4 beta5 版本 因為不會在設定掛載點時自動新增文件夾, 就算你手動用 ftp 或用 tool fetch 下戴的方式新增文件夾, 都會因權限問題而一樣無法運行。
目前我的解決方法是把用來放置 container 的 usb 記憶體, 插到 linux pc 上手動新增文件夾並賦予所有用戶 read , write , execute 權限, 再插回router。這樣的做法可能不太安全, 不過在 mikrotik 更新前只好頂硬上。
如果你是直接安裝 container 在 router 的 flash 空間, 你用下列的指令後把新增的文件夾經 winbox > file 上載到 router 應該就可以。如像我使用usb的不能在 file 把文件夾拉到usb 空間。

  • 使用 linux pc 新增文件夾並賦予權限
1mkdir -p -m 777 {adguardhome/work,adguardhome/conf}

img


設定掛載點

1/container/mounts/add name="work" src="disk1/adguardhome/work" dst="/opt/adguardhome/work"
2/container/mounts/add name="conf" src="disk1/adguardhome/conf" dst="/opt/adguardhome/conf"

下載和佈署 container

  • 指定 Container 鏡像倉庫
1/container/config/set registry-url=https://registry-1.docker.io/
  • 下載和佈署
1/container/add remote-image=adguard/adguardhome:latest interface=veth1 root-dir=disk1/containers/ mounts=work,conf  hostname=AdGuardHome dns=1.1.1.1

運行 Container Image

1/container/start 0

img


總結

終於成功回到可愛又迷人的 AdGrard Home 頁面
http://172.17.0.2:3000
img

本以為升級上 ros 7.4beta5 可更方便地安裝 AdGrard Home , 不過卻還是要插拔 usb 記憶體進行額外的步驟, 才能成功運行。

只好希望往後的版本可以修復這問題!!!

至於 AdGrard Home 的設定可參考本blog之前的
(設定篇) 為Mikrotik ROS 7.1 RC4 安裝AdGuardHome 去除有害網站和廣告

其他詳細資料請參閱 mikrotik docker 說明頁
AdGuardHome Wiki · GitHub