這個腳本適合做什麼
install_docker_ubuntu_2404.sh 面向 Ubuntu 24.04.4 LTS 主機,適合那些希望依 Docker 官方倉庫方式完成安裝,但又不想手動重複輸入一長串 APT 設定命令的場景。
如果你想替團隊準備一個可審閱、可複製、可直接執行的安裝入口,而不是把官方步驟拆散貼進群聊或 runbook,這個腳本就很合適。
它會對主機做哪些改動
腳本會清理舊版 Docker 套件、匯入 Docker 簽章金鑰與軟體源、安裝 Docker Engine 和 Compose 外掛、寫入基礎版 /etc/docker/daemon.json,並重新啟動 Docker 服務。
在安裝階段,它會優先使用 Docker 官方 Ubuntu 倉庫;如果 download.docker.com 不可達,會自動回退到阿里雲 Docker CE 鏡像源。
如果你是透過 sudo 執行,它還會嘗試把目前的實際使用者加入 docker 群組,方便之後重新登入後免 sudo 使用 docker 和 docker compose。
- 如存在 docker.io 等舊套件,會先移除
- 安裝來源採用 Docker 官方 Ubuntu 倉庫,而不是舊版發行版套件
- 腳本結尾會執行 docker --version、docker compose version 和 hello-world 驗證
在接近正式環境時如何更穩地使用
如果目標主機已經在跑容器,就不要把它當成「隨手執行」的命令。更穩妥的方式是先審閱腳本、確認 /etc/docker/daemon.json 是否已有自訂配置,並安排一個短維護時段,因為腳本會重新啟動 Docker。
如果是全新主機,通常一鍵命令就夠了。若你的環境對變更更敏感,建議先下載原始腳本,內部審閱後再從本地執行。
無法存取 Docker Hub 時腳本會怎麼處理
現在腳本會額外檢查主機能否連線 Docker Registry。如果這一層連通性失敗,腳本不會停留在「Docker 已裝好但拉不了映像」的半完成狀態,而是會把 registry mirror 合併進 /etc/docker/daemon.json。
目前自動寫入的鏡像地址是 https://docker.1ms.run。寫入 registry-mirrors 後,腳本會自動重新啟動 Docker,並再次嘗試 hello-world 驗證。
- 適用於全新安裝、daemon.json 尚不存在的情況
- 也相容 Docker 已安裝但尚未設定 registry-mirrors 的情況
- 會盡量合併現有 daemon.json,而不是直接粗暴覆蓋
安裝後建議這樣驗證
腳本結束後,除了看版本號,也建議確認 Docker 服務狀態。如果腳本把某個非 root 使用者加入了 docker 群組,要記得這個權限變化不會立刻影響目前 shell,需要重新登入,或執行 newgrp docker。
- 執行 docker --version
- 執行 docker compose version
- 執行 systemctl status docker
- 如果還想再確認一次,可以重新執行 docker run --rm hello-world