Как перечислить содержимое именованного тома в докере 1.9+?
Docker 1.9 добавил именованные тома, поэтому я...
docker volume create --name postgres-data
docker volume ls
и я получаю
local postgres-data
все хорошо до сих пор..
так как я вижу, что находится в именованном томе? Есть ли способ к нему подключиться к хост-системе. Как я могу для смонтированного каталога хоста?
Ответы
Ответ 1
docker run --rm -i -v=postgres-data:/tmp/myvolume busybox find /tmp/myvolume
Объяснение: Создайте минимальный контейнер с инструментами для просмотра файлов томов (busybox), установите именованный том в каталоге контейнера (v=postgres-data:/tmp/myvolume
), перечислите файлы томов (find /tmp/myvolume
). Удалите контейнер, когда листинг сделан (--rm
).
Ответ 2
вы можете запустить
docker volume inspect postgres-data
и см. раздел Mountpoint
результата
поэтому параметр source укажет на каталог хоста
может быть
/var/lib/docker/volumes/[volume_name]/_data
Ответ 3
Вот одна идея...
docker run -it --name admin -v postgres-data:/var/lib/postgresql/data ubuntu
то в интерактивной оболочке
ls /var/lib/postgresql/data
Лучшие идеи приветствуются!
Ответ 4
Я использую эту удобную функцию для отображения содержимого моих томов:
dvolume() {
local volume volumes_to_list=${1:-$(docker volume ls --quiet)}
for volume in $volumes_to_list; do
sudo ls -lRa "$(docker volume inspect --format '{{ .Mountpoint }}' "$volume")"
echo
done
}
Обратите внимание, что вы можете вызвать функцию двумя способами:
$ dvolume # for each volume, list its content
$ dvolume <volume> # list <volume> content
Ответ 5
Вероятно, бессмысленно, но все же:
sudo ls -l $(docker volume inspect myvolumename | jq -r '.[0].Mountpoint')
Проверьте страницу документа jq для деталей о том, как установить это.