|
本帖最后由 tyxu 于 2024-3-24 17:35 編輯 本人老白,又老又白,喜歡折騰。目前半退休狀態(tài),終于有時間折騰啦,和大家分享一下我的近期折騰結(jié)果。如果大佬們覺得本文幼稚,請勿噴,不要打擊老同志那顆愛折騰的心。同時,熱烈歡迎大家指正交流。 本文極度適合群暉用戶,適合各種已經(jīng)完成docker搭建的用戶。當(dāng)然,如果您有設(shè)備可以運行虛擬機,或者直接安裝Openwrt,本文大部分步驟可以借鑒。 根據(jù)我自己的使用情況,計劃包含以下幾個部分:安裝immortalWrt、安裝配置science小貓咪、DDNS如何在FakeIP下工作、利用*V*P*N*回家學(xué)習(xí)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的一個分支,具體情況可以百度 好啦,開始正題: 準(zhǔn)備工作。。。。 我使用的是群暉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ǔ)準(zhǔn)備完成。 如果您不是群暉用戶,上面的全可以跳過,選擇適合您設(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、準(zhǔn)備鏡像 Openwrt的鏡像選擇還是比較多的,在Docker hub以此為關(guān)鍵字可以檢索出很多,根據(jù)自己需要選用就可以,有實力的同學(xué)還可以制作自己的鏡像。 但上面說過,這些自帶插件的鏡像個頭都比較大,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 指定默認(rèn)地址。 immortalwrt/rootfs:x86-64-openwrt-21.02.7 鏡像的名稱。 /sbin/init 表示載入容器后內(nèi)核啟動時主動呼叫的第一個進(jìn)程,docker中必須要保持一個進(jìn)程的運行,要不然整個容器啟動后就會馬上自己kill自己。 最后回車運行一下吧!
這樣的結(jié)果,就是容器已經(jīng)成功創(chuàng)建??梢?br>
5、更改容器網(wǎng)絡(luò)參數(shù) 使用SSH工具,進(jìn)入容器,2e5b就是我們上面創(chuàng)建的容器ID縮寫
我是編輯成了這個樣子,可以參考:
|
|
|