🔧 定義 Volume 的位置
1. 在 volumes: 項目下(頂層)
這是用來聲明你將在服務中使用的 volume 名稱。可以只命名不指定細節,也可以進一步設定屬性。
2. 在 services: 裡掛載 Volume
這樣會把名為
mydata 的 volume 掛載到容器內的 /data 路徑。🧰 Volume 掛載語法
<volume-name>:對應在volumes:頂層定義的名稱
<container-path>:容器內部的掛載點
<access-mode>(可選):ro為唯讀,rw為可讀寫(預設)
🧪 範例:
📁 支援的 Volume 類型
1. Named Volumes(命名卷)
由 Docker 自動管理的 volume,用來持久化資料。
2. Anonymous Volumes(匿名卷)
未命名的 volume,Docker 自動分配名稱,一般用於短期用途。
3. Host Volumes(主機目錄)
直接掛載主機上的目錄(不是 Docker volume)
⚙️ Volume 的屬性設定
📘 說明:
driver:指定 volume 的驅動程式(如local、nfs等)
driver_opts:設定 volume 的驅動參數
labels:加上自定義的 metadata(標籤)
🧩 Compose volume 與 docker CLI 對應
Compose 定義 | 對應 CLI 命令 |
volumes: | docker volume create |
掛載語法 | docker run -v <volume>:<path> |
主機掛載 | -v $(pwd):/app |
📝 小提醒
- Volumes 定義是在
volumes:區塊(不是services:裡面)
- 掛載 volume 時要注意目錄權限與路徑正確性
- 主機掛載(host volumes)不會自動建立資料夾,需要先手動建立或加
bind設定
- 使用 named volumes 可以讓資料在容器重建時不遺失
如果你想要我再幫你整理成 Markdown 檔案或加上圖解,都可以跟我說喔!你目前有在使用 Docker Compose 嗎?還是剛開始學呢?