−25%

Windows 年繳方案適用,至 10 月 31 日。 檢視方案

EQVPS
開始使用

如何在 VPS 上安裝 Docker

用正確的方式在 Ubuntu 上安裝 Docker Engine 和 Compose 外掛——從 Docker 官方儲存庫安裝,而不是過時的發行版套件——然後執行一個測試容器並設定為開機自啟。幾條指令就能得到一台可用的容器主機。

Docker 把一個應用和它需要的一切打包進一個容器,讓它在任何地方都能以同樣的方式執行——這是在 VPS 上自建服務最乾淨的方式。在 Ubuntu 和 Debian 上唯一要注意的是,發行版自備儲存庫中的版本往往比較舊,而且不帶現代的 Compose 外掛。請改用 Docker 官方儲存庫來安裝。以下是完整流程。

1. 設定 Docker 官方儲存庫(Ubuntu)

sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo 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" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

2. 安裝 Docker Engine 和 Compose

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

3. 確認它正在執行並已設定為開機自啟

sudo systemctl enable --now docker
sudo docker run --rm hello-world

hello-world 容器會被下載下來,列印一條成功資訊然後退出——這就證明了引擎工作正常。

4.(選填)在不使用 sudo 的情況下執行 Docker

sudo usermod -aG docker $USER
# log out and back in for the group to take effect

只對您信任的使用者這樣做——docker 組的存取權限在這台主機上實際上等同於 root。

一個真實的小容器

docker run -d --restart unless-stopped -p 8080:80 --name web nginx
# visit http://YOUR.SERVER.IP:8080

--restart unless-stopped 正是讓容器在重新啟動後自動恢復的關鍵。

誠實的提醒

  • 使用官方儲存庫以獲得較新的版本; 發行版自備的 docker.io 套件版本落後,也不帶 Compose 外掛。
  • 只開放您發布出去的埠。 容器的 -p 8080:80 會暴露 8080 埠——把 Docker 和 UFW 防火牆 搭配使用。
  • 根據容器來設定機器規格,而不是根據 Docker 本身——它很輕量。

下一步

裝好 Docker 之後,您幾乎可以自建任何服務。參見 在一個 IP 上自建多個服務,或者具體的 Docker 搭建案例,比如 RustDesk 遠端桌面伺服器 和 Uptime Kuma 監控。要在前面加上網域和 HTTPS,參見 如何設定 nginx 反向代理。

常見問題

我應該用 'apt install docker.io' 還是 Docker 官方儲存庫?

想要一個較新的版本,請用 Docker 官方儲存庫(見下方步驟)。發行版自備的 docker.io 套件雖然方便,但版本往往落後,而現代的 'docker compose' 外掛是隨官方套件一起提供的。如果您只需要一台臨時用完即棄的機器,docker.io 也夠用。

'docker compose' 和 'docker-compose' 有什麼區別?

舊的 'docker-compose' 是一個獨立的 Python 工具(帶連字元)。現在用的是 'docker compose'(中間有空格)——一個隨 Docker 一起打包的外掛。請使用這個外掛;獨立工具已經是遺留方案。按下面的步驟安裝 docker-compose-plugin 就能獲得它。

如何在不每次輸入 sudo 的情況下執行 Docker?

把您的使用者加入 docker 組:'sudo usermod -aG docker $USER',然後重新登入一次。請注意,這實際上等於透過容器授予了 root 級別的存取權限,所以只對您信任、且是您自己機器上的使用者這樣做。

Docker 需要多少記憶體?

Docker 本身很輕量;真正吃資源的是您執行的容器。一兩個小型應用在 1 GB 的機器上就能舒服執行,而更重的組合(資料庫、多個服務)則需要更多餘量。請根據工作負載來選設定,而不是根據 Docker 本身。

重新啟動之後我的容器還會在嗎?

只有您明確告訴它們要這樣做才會。按照下面的步驟,Docker 的服務會被設定為開機自啟,而以 '--restart unless-stopped'(或在 Compose 中設定同樣的策略)啟動的容器會自動恢復。如果沒有設定重新啟動策略,容器在重新啟動後就會保持停止狀態。

評論

目前還沒有評論。歡迎成為第一位。

發表評論

評論在顯示前會經過審核。