不懂程式也能自架服務?Docker 30 分鐘入門教學:安裝、docker compose、備份一次搞懂

「自架」這兩個字,十年前確實是工程師的專利。我自己是遊戲業 PM 出身,程式能力大概停在把 Excel 巨集寫到當掉的等級,但過去幾年我自架過 wiki、網站監測工具,還有一套給整個專案組用的專案管理系統。靠的不是我突然變強,是 Docker 把門檻壓到了「會裝 LINE 電腦版就會」的程度。
這篇寫給跟我一樣的人:想把服務架在自己機器上——省錢、資料自己管——但一看到教學文滿滿的指令就關掉分頁。我會用白話講清楚 Docker 在幹嘛、三個作業系統怎麼裝、怎麼用 docker compose 跑起第一個服務,以及教學文最少講但最重要的三件事:資料放哪、怎麼備份、誰連得到你的服務。
Docker 到底是什麼?用手搖飲加盟來理解
網路教學都愛用「貨櫃」比喻 Docker,我聽了十次還是沒感覺。後來想到一個貼近生活的版本:手搖飲加盟。
映像(image)是總部給你的整套開店包。配方、機台參數、員工 SOP,全部密封打包好,內容物固定,台北拿到的跟高雄拿到的一模一樣。軟體世界裡,開發者把「程式+所有它需要的環境」封裝成一個映像,你下載回來就是完整的、保證能跑的東西。這就是為什麼你不用懂安裝過程——別人已經在總部幫你搞定了。
容器(container)是照著開店包實際開出來的一間分店。同一包可以開十間店,每間獨立營業,倒了一間不影響其他間。而且容器天生就是「隨拆隨建」的設計:今天拆掉,明天用同一個開店包三十秒重開。
compose 檔是展店計畫書。一張 A4 寫清楚:這個商圈要開哪幾間店、門牌掛幾號(port)、帳本放哪裡(volume)。最大的好處是換人接手也沒差,照著這張紙,任何人都能把整套店原樣重開。
觀念就這三個。接下來的每一步,都只是把這三件事翻譯成指令而已。
第一步:把 Docker 裝起來
三個平台加上 NAS 的安裝方式如下:
| 環境 | 安裝方式 | 備註 |
|---|---|---|
| Windows 10 / 11 | 官網下載 Docker Desktop,雙擊安裝、一路下一步、重開機 | 需要 WSL2,安裝程式會自動處理;真的跳錯誤就執行 wsl --update 再重試 |
| Mac | 官網下載 Docker Desktop,拖進「應用程式」 | 依晶片選 Apple Silicon 或 Intel 版本 |
| Linux | 終端機執行官方腳本 curl -fsSL https://get.docker.com | sh | compose 已內建,不用另外裝 |
| Synology NAS | 套件中心安裝「Container Manager」 | 就是 Docker,DSM 7.2 之後改的名字 |
裝完打開終端機(Windows 開「終端機」或 PowerShell),輸入 docker --version,有跳版本號就是成功。到這裡大概花你 10 分鐘,其中 8 分鐘在等下載。
順帶一提,很多人家裡那台 24 小時開著的 Synology NAS,其實就是最適合自架的主機,只是你一直沒發現它會跑 Docker。
30 分鐘跑起第一個服務:docker compose 實戰
拿 Uptime Kuma 當第一個練習——開源的網站監測工具,介面漂亮、單一容器,幾乎沒有出錯的空間。
第一步,建一個資料夾(例如 kuma),在裡面建一個純文字檔,命名為 compose.yml,內容如下:
services:
kuma:
image: louislam/uptime-kuma:1
ports:
- "3001:3001"
volumes:
- ./kuma-data:/app/data
restart: unless-stopped
逐行翻成人話:
- image:跟總部叫哪一份開店包(開發者發佈在 Docker Hub 上的名字)。
- ports "3001:3001":把這間店的門牌掛在你這台機器的 3001 號。
- volumes "./kuma-data:/app/data":帳本放店外——容器裡的資料對應到你資料夾底下的 kuma-data,店拆了帳本還在。
- restart: unless-stopped:機器重開機後,店自動重新開門。
先說一件讓新手安心的事:你幾乎永遠不需要自己從零寫 compose 檔。開源專案的說明文件通常都附官方範本,複製貼上、頂多改個 port 就能用。你要練的是「看懂每一行在說什麼」,不是「會寫」。
第二步,在這個資料夾開終端機,輸入 docker compose up -d。等它下載完(幾百 MB,看網速),瀏覽器打開 http://localhost:3001,你的第一個自架服務就在眼前。-d 的意思是在背景執行,關掉終端機它照樣跑。
講個真實的時間感。2022 年我想幫 14 人的專案組架一套內部 wiki,IT 說排程要等三週。我週五下午在一台閒置的測試機上照這個流程弄,從裝 Docker 到第一個同事開始建頁面,計時 38 分鐘——其中 15 分鐘在等公司網路下載映像。三週和 38 分鐘的差距,就是我入坑的原因。
資料放哪裡?volume 是你唯一不能跳過的觀念
這裡有個坑,而且我是用三週的會議記錄換來的教訓。
第一次自架時我沒寫 volumes 那幾行,服務照跑、資料照存,一切正常——直到我為了更新把容器刪掉重建。前面說過,容器是隨拆隨建的店面,你存在店裡的東西會跟著店一起消失。隔週 QA lead 問我「我上週寫的測試報告呢」,我只能含糊說伺服器在維護,然後熬夜重建了一個空的 wiki。
所以規則只有一條:任何你在乎的資料,一定要透過 volume 對應到容器外面。好消息是,你抄來的 compose 檔幾乎都幫你寫好了,你只要確認 volumes 區塊存在、知道它指向哪個資料夾。以上面的例子來說,所有監測設定都在 kuma-data 裡,那個資料夾就是你的命根子。
另一個保命習慣:看到任何指令帶 -v 或 --volumes(例如 docker compose down -v),先停三秒想清楚,那個參數的意思是「連帳本一起銷毀」。
備份與更新:每月 30 分鐘的維運真相
備份:就是打包一個資料夾
因為資料全在 volume 資料夾裡,備份簡單到有點反高潮:docker compose stop 停個 30 秒,把資料夾壓縮成 zip,再 docker compose start,zip 丟雲端硬碟或另一台機器。我那套用了一年的 wiki,整包壓起來 412MB,Google Drive 免費空間都塞得下。
頻率看資料多重要。我自己是每週日晚上做一次,設個手機鬧鐘就好——先養成習慣,之後想寫自動化腳本再說。
更新:兩行指令,但先備份
docker compose pull(跟總部叫新版開店包),接著 docker compose up -d(拆舊店、用新包重開,帳本原地接上),前後大概一分鐘。
唯一的鐵律:更新前先備份一次。新版本偶爾會改資料格式,改壞了你至少退得回去。我維持這個習慣五年,真正用上備份的次數是兩次,兩次都很慶幸。
防火牆與內網:誰連得到你的服務?
很多人第一個緊張的點是「我架了服務,會不會全世界都連得到?」先講結論:不會,除非你自己去路由器上開門。
compose 檔裡的 ports 是把服務開給「你這台機器所在的網路」。在家裡或辦公室,同一個 Wi-Fi 底下的人可以用你的內網 IP(長得像 192.168.x.x)加 port 連進來,例如 http://192.168.1.50:3001。這正是團隊自架要的效果:辦公室裡人人能用,外面的世界看不到。Windows 第一次跑會跳防火牆詢問視窗,勾「私人網路」允許就對了。
想從外面存取(例如在家連公司那台機器)怎麼辦?新手請不要直接在路由器上做 port forwarding 把服務丟上公網,這等於把店開在沒有鐵門的暗巷。比較安全的做法是用 Tailscale 這類免費的個人 VPN,手機電腦裝個 App 就能像在內網一樣連回去,零防火牆設定。
誠實說:什麼情況你不該自架
寫到這裡都在講自架多簡單,但有幾種情況我會直接勸退。第一,你們連一台「不會被關機的電腦」都生不出來——自架要有一台常開的主機,舊筆電、NAS、每月幾百塊台幣的雲端 VM 都行,但總得有一台。第二,團隊裡沒有任何人願意當「管機器的人」,每月 30 分鐘的備份更新不難,但總要有人記得做,沒有這個人就乖乖用 SaaS。第三,你們現在用的雲端工具免費方案還夠用——那就繼續用,別為了自架而自架。
另外,想練手完全不用花錢:Worklenz、Leantime、Plane CE 這些開源專案管理工具都能免費自架。拿它們跑完這篇教學的流程,你就是有實戰經驗的人了。
那 LIVO 呢?就是一個 compose 檔
最後回到我自己做的東西。LIVO 是我開發的自架專案管理系統,部署方式就是這篇教的內容:一個 docker compose 檔,加一份繁體中文安裝文件,照著做 30 分鐘上線,備份和更新的邏輯跟上面寫的一模一樣。標準版 NT$25,000 一次買斷、不限人數,含首年支援與功能更新,Bug 修正永久免費。
也先講缺點:LIVO 是閉源軟體,開發者就我一個人,生態當然比不上 Jira;我也沒有公司統編,公司採購需要報帳的話,我提供勞務報酬單協助處理。如果前面那些免費開源工具就能滿足你,先用它們;LIVO 的差異在繁中原生介面、內建審批流和自動日報,還有出問題時用中文找得到我這個活人。
常見問題
完全不會寫程式,真的能自架嗎?
能。這篇教學裡沒有任何一行「程式」,只有安裝軟體和複製貼上指令。會在終端機打字、會用檔案總管建資料夾,就具備全部前置技能;卡關時把錯誤訊息整段丟給搜尋引擎或 AI,多數問題幾分鐘內就有解。
自架服務需要什麼等級的電腦?
比你想的低很多。2 核心 CPU、4GB 記憶體的機器就能同時跑好幾個輕量服務;一台淘汰的筆電、一台 Synology NAS,或每月幾百元台幣的雲端 VM 都夠用。重點是穩定常開,不是效能。
Docker 要收費嗎?
Docker 引擎本身開源免費。Windows/Mac 用的 Docker Desktop 對個人使用者免費,公司要到相當規模才需要付費訂閱,確切門檻以 Docker 官網的授權條款為準——一般中小團隊都落在免費範圍內。
如果你想看一個「已經打包好、照這篇流程就能跑起來」的實例,可以先開 LIVO 的免登入 Demo 逛逛,喜歡再申請 14 天免費試用金鑰(專業版功能,自架安裝),照這篇的流程自己跑一遍。