Docker имеет несколько драйверов хранения, которые позволяют работать с соответствующими устройствами хранения. В следующей таблице показаны различные драйверы хранилища, а также технология, используемая для драйверов хранилища.
Технология | Драйвер хранилища |
---|---|
OverlayFS | оверлей или оверлей2 |
AUFS | AUFS |
Btrfs | brtfs |
Диспетчер устройств | Диспетчер устройств |
VFS | VFS |
ZFS | ZFS |
Давайте теперь обсудим некоторые случаи, когда вы будете использовать различные драйверы хранилища —
AUFS
-
Это стабильный драйвер; может быть использован для готовых приложений.
-
Он имеет хорошее использование памяти и обеспечивает бесперебойную работу Docker для контейнеров.
-
Существует высокая активность записи, связанная с этим драйвером, который следует учитывать.
-
Это хорошо для систем, которые имеют Платформу как тип обслуживания.
Это стабильный драйвер; может быть использован для готовых приложений.
Он имеет хорошее использование памяти и обеспечивает бесперебойную работу Docker для контейнеров.
Существует высокая активность записи, связанная с этим драйвером, который следует учитывать.
Это хорошо для систем, которые имеют Платформу как тип обслуживания.
Devicemapper
-
Это стабильный драйвер; обеспечивает беспроблемное взаимодействие с докером.
-
Этот драйвер хорош для тестирования приложений в лаборатории.
-
Этот драйвер соответствует основным функциональным возможностям ядра Linux.
Это стабильный драйвер; обеспечивает беспроблемное взаимодействие с докером.
Этот драйвер хорош для тестирования приложений в лаборатории.
Этот драйвер соответствует основным функциональным возможностям ядра Linux.
Btrfs
-
Этот драйвер соответствует основным функциональным возможностям ядра Linux.
-
Существует высокая активность записи, связанная с этим драйвером, который следует учитывать.
-
Этот драйвер подходит для случаев, когда вы поддерживаете несколько пулов сборки.
Этот драйвер соответствует основным функциональным возможностям ядра Linux.
Существует высокая активность записи, связанная с этим драйвером, который следует учитывать.
Этот драйвер подходит для случаев, когда вы поддерживаете несколько пулов сборки.
Ovelay
-
Это стабильный драйвер, который соответствует основным функциям ядра Linux.
-
У него хорошее использование памяти.
-
Этот драйвер хорош для тестирования приложений в лаборатории.
Это стабильный драйвер, который соответствует основным функциям ядра Linux.
У него хорошее использование памяти.
Этот драйвер хорош для тестирования приложений в лаборатории.
ZFS
-
Это стабильный драйвер, и он хорош для тестирования приложений в лаборатории.
-
Это хорошо для систем, работающих по типу «платформа как услуга».
Это стабильный драйвер, и он хорош для тестирования приложений в лаборатории.
Это хорошо для систем, работающих по типу «платформа как услуга».
Чтобы увидеть используемый драйвер хранилища, введите команду docker info .
Синтаксис
docker info
Опции
Никто
Возвращаемое значение
Команда предоставит всю относительную информацию о компоненте Docker, установленном на Docker Host.
пример
sudo docker info
Выход
Следующий вывод показывает, что основным драйвером является драйвер aufs и что корневой каталог хранится в / var / lib / docker / aufs .
Объемы данных
В Docker у вас есть отдельный том, который можно использовать в разных контейнерах. Они известны как объемы данных . Некоторые особенности объема данных —
- Они инициализируются при создании контейнера.
- Они могут быть общими, а также повторно использованы во многих контейнерах.
- Любые изменения самого тома могут быть сделаны напрямую.
- Они существуют даже после удаления контейнера.
Давайте посмотрим на наш контейнер Дженкинс. Давайте сделаем проверку докера, чтобы увидеть детали этого изображения. Мы можем выполнить следующую команду, чтобы записать вывод команды docker inspect в текстовый файл, а затем просмотреть файл соответствующим образом.
sudo docker inspect Jenkins > tmp.txt
Когда вы просматриваете текстовый файл с помощью команды more , вы увидите запись как JENKINS_HOME = / var / Jenkins_home .
Это отображение, которое выполняется внутри контейнера через изображение Jenkins.
Теперь предположим, что вы хотите отобразить том в контейнере на локальный том, тогда вам нужно указать опцию –v при запуске контейнера. Пример показан ниже —
sudo docker run –d –v /home/demo:/var/jenkins_home –p 8080:8080 –p 50000:50000 jenkins
Параметр –v используется для сопоставления тома в контейнере, который является / var / jenkins_home, с местоположением на нашем хосте Docker, которое является / home / demo .
Теперь, если вы перейдете в каталог / home / demo на вашем Docker Host после запуска вашего контейнера, вы увидите все файлы контейнера, присутствующие там.
Изменение драйвера хранилища для контейнера
Если вы хотите перейти на драйвер хранилища, используемый для контейнера, вы можете сделать это при запуске контейнера. Это можно сделать с помощью параметра –volume-driver при использовании команды docker run . Пример приведен ниже —
sudo docker run –d –volume-driver=flocker –v /home/demo:/var/jenkins_home –p 8080:8080 –p 50000:50000 jenkins
Параметр –volume-driver используется для указания другого драйвера хранилища для контейнера.
Чтобы подтвердить, что драйвер был изменен, сначала давайте воспользуемся командой docker ps, чтобы увидеть запущенные контейнеры и получить идентификатор контейнера. Итак, сначала выполните следующую команду —
sudo docker ps
Затем выполните проверку докера для контейнера и поместите вывод в текстовый файл с помощью команды.
sudo docker inspect 9bffb1bfebee > temp.txt
Если вы просмотрите текстовый файл и перейдете к строке с надписью VolumeDriver , вы увидите, что имя драйвера было изменено.
Создание тома
Том можно создать заранее с помощью команды docker . Давайте узнаем больше об этой команде.
Синтаксис
docker volume create –-name=volumename –-opt options
Опции
-
name — это имя тома, который нужно создать.
-
opt — это опции, которые вы можете предоставить при создании тома.
name — это имя тома, который нужно создать.
opt — это опции, которые вы можете предоставить при создании тома.
Возвращаемое значение
Команда выведет имя созданного тома.
пример
sudo docker volume create –-name = demo –opt o = size = 100m
В приведенной выше команде мы создаем том размером 100 МБ с именем demo.
Выход
Вывод вышеуказанной команды показан ниже —
Перечисление всех томов
Вы также можете перечислить все тома докеров на хосте докеров . Более подробная информация об этой команде приведена ниже —
Синтаксис
docker volume ls
Опции
Никто
Возвращаемое значение
Команда выведет все тома на хост докера .
пример
sudo docker volume ls
Выход
Вывод вышеуказанной команды показан ниже —