HELPER VPS

VPS 安裝 Docker:Ubuntu、Debian、AlmaLinux 及 Compose

以 Docker 官方套件庫安裝,可取得最新的 Docker Engine 及 Compose 外掛,之後的更新亦只需一次系統更新。按次序整理了各作業系統的指令,以及安裝後必須完成的設定。

最快的方法:以 Docker 映像建立伺服器

建立新伺服器時,在映像清單選擇 Docker 最快。伺服器以 Ubuntu 24.04 LTS 上已安裝 Docker Engine 及 Docker Compose 的狀態啟動,登入後即可執行 docker compose up。應用程式介紹及推薦大小見 Docker VPS 頁面。

如想為已在使用的伺服器加上 Docker,或使用 Debian、AlmaLinux 等其他作業系統,請按以下次序自行安裝。所有指令以 root 登入的狀態為準。如以一般用戶登入,請在指令前加上 sudo。

安裝前的確認

Docker 可以在任何大小的伺服器上運行。對於運行幾個容器的個人項目,最小的 12GB 通用方案已足夠;要同時運行數據庫、Web 伺服器和緩存,24GB 或更多會更從容。如果您經常下載和構建鏡像,NVMe VPS 的快速磁碟會帶來顯著差異。

如作業系統套件庫中有舊 Docker 套件,請先刪除,避免與官方套件混雜。未安裝的套件會被略過,照樣執行亦沒問題。

Ubuntu, Debian
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do apt remove -y $pkg; done

在 Ubuntu 24.04 安裝 Docker

第 1 步:加入套件庫金鑰及位址

Ubuntu 24.04
apt update
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" > /etc/apt/sources.list.d/docker.list

第 2 步:安裝 Docker Engine 及 Compose

Ubuntu 24.04
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

安裝完成後 Docker 服務會自動啟動,伺服器重新啟動時亦會一併啟動。同一指令在 Ubuntu 22.04 及 26.04 亦照樣運作。套件庫位址中的版本名稱會自動從 /etc/os-release 讀取。

在 Debian 13 安裝 Docker

Debian 的次序與 Ubuntu 相同,只是套件庫位址改為 linux/debian。Debian 12 亦使用相同指令。

Debian 13
apt update
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" > /etc/apt/sources.list.d/docker.list
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

在 AlmaLinux 10 安裝 Docker

AlmaLinux 及 Rocky Linux 使用 Docker 的 RHEL 套件庫。為免與內建的 Podman 重疊,先整理再安裝。AlmaLinux 9 及 Rocky Linux 9、10 亦是相同指令。

AlmaLinux 10
dnf remove -y podman buildah runc
dnf -y install dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
systemctl enable --now docker

首次安裝時如詢問是否接受套件庫簽署金鑰,按 y。RHEL 系列安裝後服務不會自動啟動,以最後一行 systemctl enable --now docker 立即啟動,並設定開機時一併啟動。

確認安裝及首個容器

以下列指令試行一個測試容器。出現以 Hello from Docker 開頭的說明,即表示引擎、下載映像及執行容器全部正常。加上 --rm,執行完成後容器便會即時清理。

終端機
docker run --rm hello-world
docker compose version

如想以一般用戶使用 Docker,把該用戶加入 docker 群組並重新登入。docker 群組擁有與 root 相同的權限,請只加入可信任的用戶。

終端機
usermod -aG docker username

以 Docker Compose 架設服務

Compose 是把容器設定寫在一個 YAML 檔案、以一行指令啟動的方法。即使遷移或新建伺服器,只要有同一檔案便可重建相同環境。例如啟動一個 Nginx 網頁伺服器的檔案如下。

終端機
mkdir -p /opt/web && cd /opt/web
cat > compose.yaml <<'EOF'
services:
  web:
    image: nginx:stable
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html:ro
    restart: unless-stopped
EOF
docker compose up -d

以瀏覽器開啟 http://YOUR_SERVER_IP 便會看到 Nginx 畫面。在 html 資料夾放入 index.html,便會顯示該檔案。常用指令以下四個已足夠。

  • docker compose ps:顯示目前運行的容器及連接埠。
  • docker compose logs -f:即時追蹤日誌,以 Ctrl+C 離開。
  • docker compose pull && docker compose up -d:下載新映像,把容器換成新版本。
  • docker compose down:停止並清理容器,卷宗內的資料照樣保留。

寫上 restart: unless-stopped,伺服器重新啟動時容器亦會自動重新啟動,只有親自停止的容器會保持停止。

防火牆與連接埠公開設定

Docker 會把以 ports: 公開的連接埠直接加入防火牆規則(iptables)開放。因此即使 ufw 未允許的連接埠,寫在 ports: 亦可從外部連線。毋須對外顯示的資料庫或管理畫面,如下只綁定到 127.0.0.1,便只能在伺服器內連線。

compose.yaml
    ports:
      - "127.0.0.1:5432:5432"

網上服務只公開 80 及 443 號,其餘在同一 Compose 網絡內以服務名稱互相呼叫,最為整潔。整部伺服器的基本防火牆請按基本防火牆指南只開放 SSH、HTTP 及 HTTPS。

日誌與硬碟管理

容器日誌如不另行設定會一直累積。在 /etc/docker/daemon.json 如下指定 local 日誌驅動程式,日誌便會壓縮,並只保留指定大小。儲存後執行 systemctl restart docker,由新建的容器起套用。

/etc/docker/daemon.json
{
  "log-driver": "local"
}

不使用的映像及停止的容器亦會佔用硬碟。以 docker system df 查看用量,以 docker image prune -a 清理目前不使用的映像。資料增加時,亦可為伺服器掛載 NVMe 區塊硬碟 用作 Docker 資料資料夾。

保護資料與下一步

容器隨時可刪除重建,但卷宗內的資料無法重建。資料庫定期留下轉存檔案,整部伺服器以自動備份或快照一併保護,更加穩妥。方法見備份與快照指南。

以 Docker 架設 WordPress 的 Compose 檔案見WordPress 安裝指南。如想在畫面部署多個應用程式並自動配上 HTTPS 證書,可試試以 Coolify 或 Dokploy 映像建立伺服器。適合專用於容器的大小已整理在容器 VPS。

值得一併查看的指南

接續此指南最好一併完成的設定。

查看所有指南