本帖最后由 tyxu 于 2024-3-24 17:35 編輯 本人老白,,又老又白,喜歡折騰,。目前半退休狀態(tài),,終于有時間折騰啦,和大家分享一下我的近期折騰結(jié)果,。如果大佬們覺得本文幼稚,,請勿噴,不要打擊老同志那顆愛折騰的心,。同時,,熱烈歡迎大家指正交流。 本文極度適合群暉用戶,,適合各種已經(jīng)完成docker搭建的用戶,。當然,如果您有設(shè)備可以運行虛擬機,,或者直接安裝Openwrt,,本文大部分步驟可以借鑒。 根據(jù)我自己的使用情況,,計劃包含以下幾個部分:安裝immortalWrt,、安裝配置science小貓咪,、DDNS如何在FakeIP下工作、利用*V*P*N*回家學習science文化知識,。 選擇openwrt的原因就不多說了,,主要是比較小巧,可用的插件多,,適合小規(guī)模折騰,。您要是非得覺得裝個ubuntu更好,也別噴我,,畢竟適合自己的才是最好,。 docker hub上基于openwrt的旁路由集成鏡像很多,多數(shù)都是集成了各種插件的18.06版本,,而且試用過程發(fā)現(xiàn)這些鏡像動輒幾百兆,,很多插件還用不上,畢竟18.06有點老,,有些插件更新還會出現(xiàn)內(nèi)核兼容問題,。 那么有沒有辦法使用新一些的openwrt版本,并且只安裝自己需要的插件呢,?必須有,! 經(jīng)過一些嘗試,最后決定使用immortalWrt的 21.02.7版本搭建一個自己定制的環(huán)境,,這個版本應(yīng)該是上一個穩(wěn)定的版本,,只有大約25M。沒敢用最新的23.05.x,,還是感覺有點不踏實,。 關(guān)于immortalWrt,是openwrt的一個分支,,具體情況可以百度 好啦,,開始正題: 準備工作。,。,。。 我使用的是群暉DS418play,,型號比較老并被定義為家用系列,,在DSM7.x下是無法安裝docker的。 首先,,無“open vswitch”選項,,需要更改配置文件,共要改兩個文件,,,,,如何修改和打開,請自行百度 其次,,DS418play 無 Docker 套件,,建議去官網(wǎng)下載DS218+的,注意DSM版本,,我用的是DSM7.1系列,,畢竟都是同一CPU,其它配置也差不多,,,,, https://nologydownload. ... &build_number=42962 Docker-x64-20.10.3-1308_DS218plus.spk 如果您用的不是這種蹩腳的群暉,,上面可以跳過。 打開“open vswitch”后,,群暉會在原有兩個物理網(wǎng)卡(eth0,eth1)的基礎(chǔ)上,,增加兩個虛擬網(wǎng)卡(ovs_eth0,ovs_eht1),,用于連接vswitch虛擬交換機,。 使用ifconfig命令會發(fā)現(xiàn),開啟vswitch后,,聯(lián)機網(wǎng)卡已經(jīng)自動切換成了ovs_eth0或ovs_eth1,。 現(xiàn)在,使用下載好的群暉DS218docker套件,,安裝吧,!安裝好docker后,基礎(chǔ)準備完成,。 如果您不是群暉用戶,,上面的全可以跳過,選擇適合您設(shè)備的應(yīng)用,,裝好docker就行啦,! 為docker配置環(huán)境。,。,。 1、開啟網(wǎng)卡混雜模式(混雜模式-物理網(wǎng)卡可以被虛擬多個MAC地址) 切換root權(quán)限,,否則沒有權(quán)限
2、創(chuàng)建虛擬vlan 其中192.168.10.0/24是我的內(nèi)網(wǎng)地址,,192.168.10.1是我的主路由器地址,,ip-range 是使用的地址范圍,以上根據(jù)個人實際修改,。macnet是新建的macvlan名,,可以隨意取,后面會用到,。
3,、準備鏡像 Openwrt的鏡像選擇還是比較多的,在Docker hub以此為關(guān)鍵字可以檢索出很多,,根據(jù)自己需要選用就可以,,有實力的同學還可以制作自己的鏡像。 但上面說過,,這些自帶插件的鏡像個頭都比較大,,OP版本基本基于18.06有點老,插件更新也經(jīng)常有問題(內(nèi)核不兼容) 如果您執(zhí)意選擇這些大佬們精心定制的版本,,我推薦: piaoyizy/openwrt-x86,,一個兄弟根據(jù)Lean大神制作的鏡像,功能上根據(jù)旁路網(wǎng)關(guān)用途做了簡化,,只包括了“師夷長技以制夷” plus,“師夷長技以制夷”和Clash三個關(guān)鍵插件,,以及一些基礎(chǔ)插件。至少2023年底還在更新,。 sulinggg/openwrt:x86_64,,這個很著名啦,但最后版本應(yīng)該是幾年前編譯的,,已經(jīng)停更,。 我最后還是選擇了immortalWrt21.02.7 自己定制。在docker注冊表搜索“immortalwrt/rootfs”,,選擇“x86-64-openwrt-21.02.7”并拖取鏡像,。里面鏡像很多,如果您的設(shè)備不是x86,,可以選擇您合適的架構(gòu)下載,。 如果你的群暉無法訪問注冊表,,可以嘗試用 docker pull 命令試試,但成功機會依然不大,。 我最初也沒辦法訪問注冊表,。為了解決這個問題,,用了個笨辦法,。在臺式機上也安裝了docker for win,畢竟臺式機出門就方便多了,。用臺式機的docker獲取鏡像,,然后使用shell執(zhí)行: 注意!是windows的那個DOS界面,,提示符長這個樣子的,! PS C:\Users\Administrator>
4、創(chuàng)建并運行容器 回到ssh,,登入群暉,,提升權(quán)限
運行命令創(chuàng)建容器
-d 參數(shù)是讓容器在后臺運行,。 --restart always 為了避免容器意外掛掉,或者被誤殺,設(shè)置了意外退出自動重啟,。 --name 給容器定義個名字,,可以自由定義。 --privileged 獲取宿主機root權(quán)限(或特殊權(quán)限),。 --network macnet 指定網(wǎng)絡(luò)為macnet,,就是我們上面創(chuàng)建的那個vlan。 --ip=192.168.10.19 指定默認地址,。 immortalwrt/rootfs:x86-64-openwrt-21.02.7 鏡像的名稱,。 /sbin/init 表示載入容器后內(nèi)核啟動時主動呼叫的第一個進程,docker中必須要保持一個進程的運行,,要不然整個容器啟動后就會馬上自己kill自己,。 最后回車運行一下吧! 這樣的結(jié)果,,就是容器已經(jīng)成功創(chuàng)建,。可以
5,、更改容器網(wǎng)絡(luò)參數(shù) 使用SSH工具,進入容器,,2e5b就是我們上面創(chuàng)建的容器ID縮寫
我是編輯成了這個樣子,,可以參考:
|
|