目錄
檢查是否安裝了 Snap 版 Docker
首先,檢查系統是否已經安裝了 Snap 版 Docker:
snap list | grep docker
如果輸出類似以下內容,表示系統已安裝 Snap 版 Docker:
docker 20.10.21 canonical✓ -
停止並移除 Snap 版 Docker
1️⃣ 停止 Snap 版 Docker
sudo snap stop docker
2️⃣ 移除 Snap 版 Docker
sudo snap remove docker
3️⃣ 確保 Snap 版 Docker 完全刪除
sudo rm -rf /var/snap/docker
4️⃣ 確保標準 Docker 也被正確移除
如果你希望完全重新安裝 Docker,可以先移除所有舊的 Docker 版本:
sudo apt remove --purge docker.io docker-ce docker-ce-cli containerd.io -y
sudo rm -rf /var/lib/docker
sudo rm -rf /var/run/docker
Docker 環境安裝
1️⃣ 重新安裝標準 APT 版 Docker
更新系統套件列表
sudo apt update
安裝 Docker 官方 GPG 金鑰
sudo apt install -y ca-certificates curl gnupg
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo tee /etc/apt/keyrings/docker.gpg > /dev/null
sudo chmod a+r /etc/apt/keyrings/docker.gpg
新增 Docker 官方安裝來源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
更新系統並安裝 Docker
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y
啟動並設定 Docker 開機自動啟動
sudo systemctl enable docker
sudo systemctl start docker
確保 Docker 正常運行
1️⃣ 檢查 Docker 版本
docker --version
應該會顯示類似以下輸出:
Docker version 24.0.6, build ed223bc
2️⃣ 檢查 Docker 是否正在運行
sudo systemctl status docker
如果顯示 active (running)
,表示 Docker 已成功運行。
3️⃣ 測試 Docker 是否正常運行
sudo docker run hello-world
如果顯示 Hello from Docker!
,表示 Docker 安裝成功!
4️⃣ 確保 Docker 權限正確
讓使用者不需要 sudo
也能執行 Docker:
sudo usermod -aG docker $USER
newgrp docker
然後重新登出 & 登入,或者執行:
sudo reboot
安裝 Portainer
1️⃣ 安裝 Portainer(使用 Docker Volume 儲存資料)
docker volume create portainer_data
docker run -d \
--name portainer \
--restart=always \
-p 8000:8000 \
-p 9443:9443 \
--privileged \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
📌 參數說明:
--restart=always
👉 確保 Portainer 在重啟後自動啟動。-p 8000:8000
👉 用於 Edge Agent 通訊(可選)。-p 9443:9443
👉 Portainer Web UI 的 HTTPS 介面。--privileged
👉 提供更高的權限,確保所有功能都可正常運行。-v /var/run/docker.sock:/var/run/docker.sock
👉 允許 Portainer 直接管理 Docker 容器。-v portainer_data:/data
👉 儲存 Portainer 配置資料,避免因重啟遺失。
2️⃣ 使用 HTTP 方式(不安全,但適合內部網路)
如果你希望使用 HTTP(非加密)模式(可用 http://<IP>:9000
來訪問 Portainer),請使用:
docker run -d \
--name portainer \
--restart=always \
-p 9000:9000 \
--privileged \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
📌 說明: Portainer Web UI 預設 HTTP 介面為 9000
,如果不需要 HTTPS,可以使用此版本。