Докер - Хранилище
Драйверы хранения
Docker имеет несколько драйверов хранения, которые позволяют работать с базовыми устройствами хранения. В следующей таблице показаны различные драйверы хранилища, а также технология, используемая для драйверов хранилища.
Технологии | Драйвер хранилища |
---|---|
OverlayFS | оверлей или оверлей2 |
AUFS | aufs |
Btrfs | brtfs |
Диспетчер устройств | Диспетчер устройств |
VFS | vfs |
ZFS | zfs |
Давайте теперь обсудим некоторые из случаев, в которых вы будете использовать различные драйверы хранилища -
AUFS
Это стабильный драйвер; может использоваться для готовых к производству приложений.
Он хорошо использует память и хорош для обеспечения бесперебойной работы Docker для контейнеров.
С этим драйвером связана высокая активность записи, которую следует учитывать.
Это хорошо для систем, которые относятся к платформе как к сервису.
Devicemapper
Это стабильный драйвер; обеспечивает бесперебойную работу с Docker.
Этот драйвер подходит для тестирования приложений в лаборатории.
Этот драйвер соответствует основным функциям ядра Linux.
Btrfs
Этот драйвер соответствует основным функциям ядра Linux.
С этим драйвером связана высокая активность записи, которую следует учитывать.
Этот драйвер подходит для случаев, когда вы поддерживаете несколько пулов сборки.
Ovelay
Это стабильный драйвер, который соответствует основным функциям ядра Linux.
У него хорошее использование памяти.
Этот драйвер подходит для тестирования приложений в лаборатории.
ZFS
Это стабильный драйвер, который подходит для тестирования приложений в лаборатории.
Это хорошо для систем, которые работают по типу «платформа как услуга».
Чтобы увидеть, какой драйвер хранилища используется, выполните команду docker info команда.
Синтаксис
docker info
Параметры
Никто
Возвращаемое значение
Команда предоставит всю относительную информацию о компоненте Docker, установленном на хосте Docker.
пример
sudo docker info
Вывод
Следующий вывод показывает, что основным используемым драйвером является aufs драйвер и что корневой каталог хранится в /var/lib/docker/aufs.
Объемы данных
В Docker у вас есть отдельный том, который можно использовать совместно с контейнерами. Они известны какdata volumes. Некоторые из особенностей объема данных -
- Они инициализируются при создании контейнера.
- Их можно совместно использовать, а также повторно использовать во многих контейнерах.
- Любые изменения в самой громкости можно вносить напрямую.
- Они существуют даже после удаления контейнера.
Давайте посмотрим на наш контейнер Jenkins. Давай сделаемdocker inspectчтобы увидеть детали этого изображения. Мы можем выполнить следующую команду, чтобы записать выводdocker inspect в текстовый файл, а затем просмотрите файл соответствующим образом.
sudo docker inspect Jenkins > tmp.txt
Когда вы просматриваете текстовый файл с помощью more command, вы увидите запись как 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 после запуска вашего контейнера, вы увидите все файлы контейнера, присутствующие там.
Смена драйвера хранилища для контейнера
Если вы хотите перейти на драйвер хранилища, используемый для контейнера, вы можете сделать это при запуске контейнера. Это можно сделать с помощью–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
Затем выпустите docker inspect против контейнера и поместите результат в текстовый файл с помощью команды.
sudo docker inspect 9bffb1bfebee > temp.txt
Если вы просмотрите текстовый файл и перейдете к строке с надписью VolumeDriver, вы увидите, что имя драйвера было изменено.
Создание тома
Том можно создать заранее, используя dockerкоманда. Давайте узнаем больше об этой команде.
Синтаксис
docker volume create –-name=volumename –-opt options
Параметры
name - Это имя тома, который необходимо создать.
opt - Это параметры, которые вы можете предоставить при создании тома.
Возвращаемое значение
Команда выведет имя созданного тома.
пример
sudo docker volume create –-name = demo –opt o = size = 100m
В приведенной выше команде мы создаем том размером 100 МБ с именем demo.
Вывод
Результат выполнения вышеуказанной команды показан ниже -
Перечисление всех томов
Вы также можете перечислить все docker volumes на docker host. Более подробная информация об этой команде приведена ниже -
Синтаксис
docker volume ls
Параметры
Никто
Возвращаемое значение
Команда выведет все тома на docker host.
пример
sudo docker volume ls
Вывод
Результат выполнения вышеуказанной команды показан ниже -