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