---
# System prepended metadata

title: 安裝 Docker 與 Docker Compose (plugin) on Ubuntu 24.04

---

# 安裝 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`，可以減少對 主系統硬碟 (`/`) 的負擔。

---

