要把 Docker 版本從 29 降到 28,同時保留原本的容器不受影響

要把 Docker 從 29 降到 28,同時保留原本的容器不受影響,核心思路是:容器與映像檔資料都存放在 /var/lib/docker,只要在降版本過程中不刪除這個資料目錄,容器就能繼續使用。


🛠️ 降版本步驟(以 Ubuntu/Debian 為例)

1. 確認目前版本

docker --version

2. 停止 Docker 服務

sudo systemctl stop docker

3. 備份容器與映像檔資料

雖然不會刪除,但建議先備份:

sudo tar -czvf docker-backup.tar.gz /var/lib/docker

4. 移除 Docker 29

sudo apt remove docker-ce docker-ce-cli containerd.io

5. 查找可用版本

apt-cache madison docker-ce

找到 28.x.x 的版本號(例如 5:28.0.0-1~ubuntu.22.04)。

6. 安裝指定版本

sudo apt install docker-ce=5:28.0.0-1~ubuntu.22.04 \
                 docker-ce-cli=5:28.0.0-1~ubuntu.22.04 \
                 containerd.io

7. 啟動 Docker

sudo systemctl start docker

8. 驗證容器是否仍在

docker ps -a

原本的容器應該都還在,因為 /var/lib/docker 沒有被刪除。


⚠️ 注意事項

  • 不要執行 apt purge 或手動刪除 /var/lib/docker,否則容器與映像檔會消失。
  • 建議安裝最新的 28.5.x 修訂版,因為早期 28.0.0 有安全漏洞。
  • 如果你有使用 Docker Compose,也要確認 Compose 版本與 Docker 28 相容。

✅ 總結:只要在降版本過程中保留 /var/lib/docker,容器與映像檔就不會受影響。

Also See

File12FileLast Modified
避免 Docker 自動使用 172.x.x.x 這類網段來建立虛擬網路避免 Docker 自動使用 172.x.x.x 這類網段來建立虛擬網路2:24 PM - January 12, 2026
讓docker 每次建立docker compose 不要使用172.x.x.x來建立 虛擬網路給 containers使用讓docker 每次建立docker compose 不要使用172.x.x.x來建立 虛擬網路給 containers使用2:24 PM - January 12, 2026
要建立並在背景執行一個 Docker Compose要建立並在背景執行一個 Docker Compose2:24 PM - January 12, 2026
完整移除一個 Docker container完整移除一個 Docker container2:24 PM - January 12, 2026
完整停止一個 Docker Compose完整停止一個 Docker Compose2:24 PM - January 12, 2026
停止一個正在執行的 Docker container停止一個正在執行的 Docker container2:24 PM - January 12, 2026
Windows containersWindows containers2:24 PM - January 12, 2026
portainer container unreachable問題portainer container unreachable問題2:24 PM - January 12, 2026
docker列出 所有容器的網域 (network) 與 IP 位址docker列出 所有容器的網域 (network) 與 IP 位址2:24 PM - January 12, 2026
Docker 容器管理速查表Docker 容器管理速查表2:24 PM - January 12, 2026
Docker 容器的 虛擬 IP 固定Docker 容器的 虛擬 IP 固定2:24 PM - January 12, 2026
docker 列出目前沒有被用的虛擬網路和網域IPdocker 列出目前沒有被用的虛擬網路和網域IP2:24 PM - January 12, 2026