Ubuntu 上安裝 Docker Engine,官方倉庫才是正路
我主張在 Ubuntu 上安裝 Docker Engine 應走 Docker 官方倉庫,而不是套用發行版預設套件,因為這能拿到更新版本、降低相依衝突,並對齊官方支援路徑。

Ubuntu 18.04 之後,Docker Engine 應從 Docker 官方 Ubuntu 倉庫安裝。
Ubuntu 預設倉庫裡的 Docker Engine 常常落後上游版本,這不是小差異,而是會直接影響修補速度、網路行為與儲存驅動相容性。官方倉庫存在的目的,就是把你安裝到的版本,拉回 Docker 實際測試與文件所對齊的那一條線。
第一個論點:版本新鮮度比安裝方便更重要
訂閱 AI 趨勢週報
每週精選模型發布、工具應用與深度分析,直送信箱。不定期,不騷擾。
不會寄垃圾信,隨時可取消。
在容器環境裡,版本差一點,行為就可能差很多。當你在排查 Compose、拉映像、或處理 bridge network 問題時,最怕的不是 bug 本身,而是 A 機器和 B 機器跑的是不同世代的 Docker Engine。官方倉庫把這種差異壓到最低,讓團隊看到的是同一套引擎行為,而不是不同套件源的副作用。

這件事在實務上很具體。Ubuntu 的 distro package 可能因為發行節奏而延後更新,結果就是安全修補、daemon 修正、與新功能支援都晚一步到。對一個每天都在跑 CI、build image、或部署 staging 的團隊來說,晚一步不是抽象風險,而是多一次故障排查、多一次回滾決策。
第二個論點:官方安裝路徑降低可避免的失敗
Docker 的 Ubuntu 安裝文件把步驟拆得很清楚:先加倉庫、再裝套件、再檢查服務狀態。這種順序不是儀式感,而是因為 Docker 會碰到 kernel interface、cgroups、以及 networking,任何一步跳掉,都可能留下半可用的 daemon。對系統層軟體而言,明確流程本身就是穩定性的一部分。
文件還會要求你做安裝後檢查,例如確認 docker group 權限、驗證 daemon 是否正常啟動。這些步驟看起來瑣碎,但它們把「裝上去」和「真的能用」分開處理。工程團隊最常遇到的問題,往往不是缺功能,而是權限沒配好、服務沒起來、或舊套件殘留造成衝突;官方流程正是在減少這類低級但昂貴的錯誤。
反方可能怎麼說
最強的反對意見是:Ubuntu 預設倉庫更簡單。只要一條 apt install,就能完成安裝,腳本好寫、教學好記,對臨時 VM、教室環境、或一次性測試機來說也通常足夠。對很多管理者而言,把軟體留在發行版支援邊界內,心理上也更安心。

另一個合理顧慮是維護成本。外部倉庫越多,信任面越大,升級時要考慮的變數也越多。若環境目標只是「能跑就好」,而不是「每台機器都要一致」,那麼少一個 repo 確實少一層管理負擔。
但這個論點只在 Docker 不重要時成立。一旦 Docker 進入正式開發、CI、或任何需要與其他機器一致的工作流,舊版本帶來的時間成本會迅速超過多加一個官方倉庫的成本。官方路徑的價值,不只是更新,而是把版本、文件、與支援責任綁在一起,避免你在問題發生時還要猜自己到底裝了哪一代。
你能做什麼
如果你是工程師,請把 Docker Engine 的安裝標準化成官方 Ubuntu 倉庫,並把整段安裝與驗證流程寫進自動化,而不是交給手工記憶;如果你是 PM 或創辦人,請把這件事視為平台契約的一部分,明確指定唯一支援的安裝方式,避免團隊把本來可預防的環境差異,變成日常支援工單。