Skip to content

建立 2026-09-15 更新 2026-09-15

映像、Volume 與網路

這三頁解決兩類問題:服務連不到彼此,以及磁碟莫名其妙被吃光。它們對應 docker imagesdocker volumedocker network

映像(Images)

映像是容器的唯讀範本。Stacks 或 Containers 部署時,若本機沒有該映像,Docker 會從 Registry 拉取。

實務上常做的事:

  • 看有哪些映像、佔多少空間:測試拉過一堆 latest 之後,這裡會很肥。
  • Pull:先更新映像,再讓 Stack 重新部署,容器才會用到新版本。只按容器 Restart 不會自動換成 Registry 上的新映像。
  • Unused / dangling:沒被任何容器使用的映像可以清。清之前確認沒有「沒在跑、但還想留著快速啟動」的容器依賴它。

私人 Registry 要先在 Portainer 設定帳密,否則 Pull 會失敗,log 看起來像網路錯誤。

Volume

Named volume 由 Docker 管理,路徑在主機的 Docker 資料目錄裡。資料庫、Portainer 自己的 portainer_data 都屬這類。

  • 刪容器預設不刪 Volume,所以資料庫還在是正常的。
  • 刪 Stack 後磁碟沒變小,先來看有沒有漏刪的 Volume。
  • 備份應用資料,備份的是 Volume(或 bind mount 的主機目錄),不是容器。

Bind mount 不會都出現在 Volumes 清單。要改家用設定檔,到主機對應目錄編輯,或在 Stack YAML 裡改路徑後重新部署。

網路(Networks)

同一個 Compose Stack 裡的服務,通常會自動加入該 Stack 的網路,用服務名稱當主機名稱互連(例如 dbweb)。這比把所有容器都放在 bridge 上再用 IP 互指可靠。

對外開放的是 ports: 對應。只讓內部互連、不要對主機開放的服務,就不要寫 ports,只留在同一網路裡。

跨 Stack 互連時,可建立一個外部網路(external network),兩個 Stack 都加入。不要為了圖方便把所有容器接到 host 網路,除錯與埠衝突會變難。

清理順序

磁碟滿了,建議順序:

  1. Images 裡未使用的映像
  2. 已停止且確定不要的容器
  3. 確認沒有應用在用的 Volume
  4. 未使用的網路

Portainer 各頁多半有「unused」篩選或刪除 unused 的動作。清 Volume 前沒備份,資料就真的沒了。