查看 docker compose 看 volume 方法
查看 Docker Container 中的 Volume 掛載資訊有幾種方式,整理如下。
方法一:docker inspect 查看 Mounts 資訊
docker inspect 可以取得容器的詳細設定,包含 Volume 掛載資訊:
1
2
3
4
5
|
# 查看完整容器資訊(JSON 格式)
docker inspect <container_name_or_id>
# 只取出 Mounts 部分(推薦)
docker inspect <container_name_or_id> --format='{{json .Mounts}}' | python3 -m json.tool
|
輸出範例:
1
2
3
4
5
6
7
8
9
10
11
12
|
[
{
"Type": "volume",
"Name": "my_postgres_data",
"Source": "/var/lib/docker/volumes/my_postgres_data/_data",
"Destination": "/var/lib/postgresql/data",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
]
|
重要欄位說明:
Source:實際在主機上的路徑
Destination:在容器內部的掛載路徑
Type:volume(Named Volume)或 bind(Bind Mount)
RW:是否可讀寫
方法二:docker volume ls 列出所有 Volume
1
2
3
4
5
6
7
8
9
10
11
|
# 列出所有 Volume
docker volume ls
# 輸出範例:
# DRIVER VOLUME NAME
# local my_postgres_data
# local my_redis_data
# local my_nginx_conf
# 篩選特定 Volume
docker volume ls --filter name=postgres
|
方法三:docker volume inspect 查看 Volume 詳情
1
2
3
4
|
docker volume inspect <volume_name>
# 範例:
docker volume inspect my_postgres_data
|
輸出範例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
[
{
"CreatedAt": "2024-01-15T10:30:00Z",
"Driver": "local",
"Labels": {
"com.docker.compose.project": "myapp",
"com.docker.compose.volume": "postgres_data"
},
"Mountpoint": "/var/lib/docker/volumes/my_postgres_data/_data",
"Name": "my_postgres_data",
"Options": {},
"Scope": "local"
}
]
|
Mountpoint 是 Volume 在主機上的實際路徑(通常在 /var/lib/docker/volumes/ 下)。
方法四:docker-compose 相關指令
1
2
3
4
5
6
7
8
|
# 查看 docker-compose.yml 解析後的完整設定(包含 volume 設定)
docker compose config
# 查看目前執行中的容器狀態
docker compose ps
# 查看特定服務的 Volume 資訊(需先知道 container 名稱)
docker compose ps -q db | xargs docker inspect --format='{{json .Mounts}}'
|
方法五:在容器內查看掛載點
1
2
3
4
5
|
# 進入容器查看掛載資訊
docker exec -it <container_name> df -h
# 或查看 /proc/mounts
docker exec -it <container_name> cat /proc/mounts
|
方法六:使用 Portainer(圖形介面)
若需要長期管理多個容器的 Volume,可以使用 Portainer 圖形化管理工具:
1
2
3
4
5
6
7
|
docker run -d \
-p 9443:9443 \
--name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
|
啟動後訪問 https://localhost:9443,可在 Volumes 頁面直觀地查看所有 Volume 和掛載資訊。
快速查詢對照表
| 需求 |
指令 |
| 查看容器的 Volume 掛載 |
docker inspect <container> | grep -A 20 Mounts |
| 列出所有 Volume |
docker volume ls |
| 查看 Volume 在主機的路徑 |
docker volume inspect <volume_name> |
| 清除未使用的 Volume |
docker volume prune |
| 查看 compose 設定 |
docker compose config |
參考資料