真正開始實際接觸Docker,是在NAS運作起來之後——我問AI怎麼在NAS上跑Minecraft伺服器的時候。
AI跟我說:「你可以用Docker來部署。」
我的反應是:好,那Docker要怎麼用?
AI解釋說,Docker是一種容器化技術,簡單說就是把一個應用程式連同它需要的所有環境打包在一起,放進一個「容器」裡獨立運行。不同容器之間互不干擾,要停掉、要刪掉、要重新建一個,都很方便。
聽起來很厲害,但對當時的我來說,這段解釋等於沒說——我連「容器」跟「堆棧」的差別是什麼都不知道。
打開NAS上的Docker套件,第一個問題來了:整個介面全是英文。
不是說完全看不懂英文,但在一個完全陌生的工具裡,每個按鈕、每個設定項都是英文,很多專有名詞我根本沒見過,根本不知道該從哪裡下手,摸索時間會拉的很長。
所以我的偷懶解法是:把介面截圖丟給AI,請它用中文一步一步教我。
這個做法讓整件事順了很多。AI看到截圖之後,直接告訴我「這個按鈕是做什麼的」、「這個欄位要填什麼」,不需要我自己猜。後來某天才發現ADM的Docker套件其實有中文版本,換過去之後更順手。
第一個要注意的細節是路徑設定。
NAS裡的路徑跟一般電腦不一樣,都是以/volume開頭,而且大小寫有差——打錯一個字母,容器就找不到正確的位置,直接出錯。這個細節AI特別提醒過我,不然我自己很可能就會在這裡踩坑。
按照AI的教學,一步一步設定完,按下啟動。
第一個MC容器就這樣跑起來了。
我盯著LOG看它一行一行跑,確認沒有報錯——成功了。那個當下有點不真實,因為在這之前我對「架伺服器」這件事的想像是很複雜、很需要技術背景的事,結果就這樣跑起來了。
後來MC版本更新,我要重新建一個新版本的容器。
照著上次的步驟一個一個手動設定,設定完我就問AI:有沒有更簡單的方式?
AI介紹了Compose編輯器。
Compose的概念是:把所有設定寫成一份文字檔,要建容器的時候直接把這份文字貼進去執行,不需要一個一個手動填欄位。
AI直接給了我一整段Compose程式碼,容器名稱、使用的映像檔版本、RAM分配、儲存路徑對應、連接埠設定……全部都在裡面。
我把它貼進Compose編輯器,執行。
容器啟動了。
我當下的感覺是:原來還有這麼一層新天地。我不只是在「用」這個工具,我開始能看懂這份設定檔在寫什麼——哪一行是容器名稱、哪一行是版本、哪一行是路徑。不是全部都懂,但能對照著理解。
有了Docker之後,NAS開始變成一個完全不同的東西。
我陸陸續續又裝了其他容器——qBittorrent用來管理下載、其他工具也慢慢加進來。每次想到「這個功能如果能在NAS上跑就好了」,就去找有沒有對應的Docker映像檔,十之八九都有。
接下來,我開始認真研究怎麼讓朋友連進MC伺服器。
這段過程說來話長,而且說不上順利。
因為之後有一個版本更新,加了些新內容,所以我必須再更新一次版本,結果這一次就很不順利,Forge的安裝一直卡關——有幾次是安裝直接出錯,我照AI的建議從電腦下載Forge安裝檔,丟進伺服器資料夾讓AI用指令碼安裝,還是失敗。指定特定版本來嘗試,也失敗。偶爾有幾次安裝成功了,但LOG顯示啟動失敗,原因不明。
這些錯誤分散在好幾個聊天室裡,每次重新開一個對話,就要重新跟AI交代一次狀況。對話拉長之後,AI開始出現奇怪的問題——給的指令碼裡路徑突然搞錯、前面的步驟跟後面的步驟開始錯亂。這在我自己也因為長時間處理同一個問題、思緒有點混亂的時候,無疑是雪上加霜。
這段經歷讓我學到一件重要的事:AI在長對話裡是會「迷失」的。當一個問題複雜到一定程度,它前後給的建議可能會出現矛盾,這時候不能盲目照做,而是需要主動讓它做一次重點整理——確認雙方對目前狀態的認知是一致的,再繼續往下走。
舉個具體的例子好了。
在那幾個聊天室裡,AI曾經給我一個Forge版本號,說這是對應MC 1.21.9的穩定版本,叫我照這個去設定。我照做,部署之後LOG直接報錯——找不到這個版本的安裝器。我把錯誤訊息丟回去,AI才承認:它給的版本號根本不存在,Forge本來就沒有對應1.21.9的版本,因為Forge只追每個大版本的第一個小版本,也就是1.21.1。
它給了我一個不存在的答案,而且給得很有把握。
還有一次,前後兩段指令的路徑寫法突然不一致——同樣一個資料夾,前面寫/volume2/...,後面變成/share/...,兩個路徑指向不同地方,部署進去當然出錯。AI在對話拉長之後開始混淆自己之前說過什麼,給的步驟跟前面的設定慢慢對不上。
這不是AI不夠聰明,而是它的工作方式就是這樣——它沒有「記住對話脈絡」的能力,只是每次根據當下看到的文字給回覆。對話越長,它需要「記住」的事情越多,出錯的機率就越高。
所以我後來養成一個習慣:每當一個階段推進到某個節點,主動要求AI做一次重點整理,把目前的狀態、已確認的設定、還沒解決的問題,全部列出來。這樣不只是讓AI重新對齊,也讓我自己確認我們對現況的理解是一致的,再繼續往下走。這個習慣,替我省了很多冤枉路。
不過當時的我還沒有這個習慣,所以走了不少彎路。
最後我做了一個決定:把整個伺服器打掉重來,先架一個最單純的原版MC伺服器,把連線問題解決,讓朋友都能順利進來,Forge的問題之後再說。
兩個問題纏在一起只會互相干擾,先拆開,各個擊破。
原版伺服器架起來了。朋友能不能連進來,是另一回事。
下一篇,我會說說連線一直失敗——以及我怎麼發現,問題根本不在伺服器本身。






















