# 安裝 Docker 與 Docker Compose (plugin) on Ubuntu 24.04
在 Ubuntu 24.04 上安裝 **Docker** 和 **最新的 Docker Compose (plugin)**
---
## **📌 1. 移除舊版本**
先檢查是否已安裝舊版 `docker`:
```sh
sudo apt remove docker docker-engine docker.io containerd runc -y
```
確保沒有殘留的舊版本,避免衝突。
---
## **📌 2. 安裝 Docker 官方套件庫**
Ubuntu 24.04 版本的 Docker **不應直接用 `apt install docker.io`,請使用官方 repository**。
### **🔹 2.1 更新套件索引**
```sh
sudo apt update && sudo apt upgrade -y
```
### **🔹 2.2 安裝必要的依賴**
```sh
sudo apt install -y ca-certificates curl gnupg
```
### **🔹 2.3 新增 Docker 官方 GPG 金鑰**
```sh
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo tee /etc/apt/keyrings/docker.asc > /dev/null
sudo chmod a+r /etc/apt/keyrings/docker.asc
```
### **🔹 2.4 設定 Docker 官方 Repository**
```sh
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
```
### **🔹 2.5 更新套件索引**
```sh
sudo apt update
```
---
## **📌 3. 安裝 Docker 與 Docker Compose**
執行:
```sh
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
```
這將會安裝:
✅ `docker-ce` → Docker Engine
✅ `docker-ce-cli` → Docker CLI
✅ `containerd.io` → 容器運行時
✅ `docker-buildx-plugin` → Docker Buildx
✅ `docker-compose-plugin` → **最新的 Docker Compose (不是 `docker-compose`)**
---
## **📌 4. 啟動與驗證 Docker**
### **🔹 4.1 啟動 Docker 並設定開機自動啟動**
```sh
sudo systemctl start docker
sudo systemctl enable docker
```
### **🔹 4.2 測試 Docker 是否安裝成功**
```sh
sudo docker run hello-world
```
✅ 如果輸出 `Hello from Docker!`,表示安裝成功!🎉
---
## **📌 5. 設定 Docker 免 `sudo`(選擇性,但推薦)**
預設情況下,每次執行 `docker` 都需要 `sudo`,你可以將自己加入 `docker` 群組:
```sh
sudo usermod -aG docker $USER
```
然後 **登出並重新登入**,或者執行:
```sh
newgrp docker
```
✅ **測試**(不需要 `sudo`):
```sh
docker ps
```
如果沒有錯誤,表示已成功!
---
## **📌 6. 測試 Docker Compose**
**Docker Compose(plugin)已經包含在 `docker` 指令內**,請測試:
```sh
docker compose version
```
✅ 輸出範例:
```
Docker Compose version v2.x.x
```
🎯 **請注意**:
- **新版 Docker Compose (plugin)** 使用 `docker compose`(有空格)
- **舊版 `docker-compose`(沒有空格)已淘汰**,請不要用
---
## **📌 7. 設定 `/mnt/data` 作為 Docker 的存儲路徑(推薦)**
如果你希望 Docker 存儲在 **500GB HDD (`/mnt/data`)**,請執行:
```sh
sudo systemctl stop docker
sudo mv /var/lib/docker /mnt/data/docker
sudo ln -s /mnt/data/docker /var/lib/docker
sudo systemctl start docker
```
✅ 這樣 Docker 會存儲在 `/mnt/data/docker`,可以減少對 主系統硬碟 (`/`) 的負擔。
---