Docker Volume

Управляйте томами. Вы можете использовать подкоманды для создания, проверки, перечисления, удаления или сокращения томов.

Команда Описание
docker volume create      Создать том
docker volume inspect    Отображение подробной информации об одном или нескольких томах
docker volume ls                Список томов
docker volume prune      Удалить неиспользуемые локальные тома
docker volume rm             Удалить один или несколько томов
docker volume update     Обновить том (только тома кластера)

Практика

-v

Создадим на хосте папку, которую будем монтировать в контейнеры

mkdir /media/mount внутри для проверки создадим разных файлов 

Запустим контейнер и смонтируем эту директории через флаг -v

docker run -it -v /media/mount/:/media/mount/ ubuntu

/media/mount/:/media/mount/ Где вначале   что маунтим и после : куда маунтим в контейнере,

в конце образ из которого разворачиваем контейнер, в нашем случае ubuntu

--mount type=

Теперь попробуем тоже самое, только через флаг --mount с типом маппинга type=bind 

docker run -it --mount type=bind,source=/media/mount/,destination=/media/mount/ ubvim:v1


Volume \ Тома

Создадим volume

docker volume create --name firstvolume

Проверим какие есть volume

docker volume ls

--mount type=volume

теперь смаунтим этот volume на 2 контейнера, что бы проверить как это работает, удобно использовать smarTTY, 

развернем 1 контейнер и примонтируем туда volume firstvolume

docker run -it --mount type=volume,source=firstvolume,destination=/media/mount ubvim:v1

source=firstvolume имя volume который маунтим

destination=/media/mount куда маунтим в контейнере

ubvim:v1 образ из которого будем разворачивать контейнер

создадим какие то файлы внутри этого volume внутри контейнера для проверки

далее развернем 2 контейнер из того же образа, команда повторится

docker run -it --mount type=volume,source=firstvolume,destination=/media/mount ubvim:v1

перейдем в каталог в который мы примонтировали volume 

cd /media/mount

и проверим все ли файлы на месте

ls -lhi

Проверим теперь на хосте где находятся файлы в этом volume firstvolume

откроем информацию об volume firstvolume

docker volume inspect firstvolume

[
{
"CreatedAt": "2024-06-11T07:30:08Z",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/firstvolume/_data",
"Name": "firstvolume",
"Options": null,
"Scope": "local"
}
]

перейдем в расположение

cd /var/lib/docker/volumes/firstvolume/_data

и увидим там созданный нами файл

 


Тип Volume  tmpfs ( временное файловое хранилище в оперативке хоста )

docker run -it --mount type=tmpfs,destination=/media/mount ubuntu

или

docker run -it --tmpfs /media/mount ubuntu

можно задать желаемый объем памяти

docker run -it --mount type=tmpfs,destination=/media/mount,tmpfs-size=1000 ubuntu

( по умолчанию размер задается в байтах )