Contents

查看 docker compose 看 volume 方法

查看 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:在容器內部的掛載路徑
  • Typevolume(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

參考資料