Особенности Docker Volumes
- Совместное использование данных тома и хранилища между несколькими контейнерами и файловыми системами хоста.
- Отсоединение контейнеров от хранилища.
- Не удаляет содержащиеся данные при удалении контейнера.
- Простое резервное копирование, восстановление и перенос данных.
В этом руководстве мы объясним, что такое том Docker и как его использовать, а также как смонтировать том в Docker.
Требования
- Система под управлением Linux с установленным Docker.
- Настроен пароль root.
Базовый синтаксис Docker Volume
Вы можете использовать команду «docker volume», чтобы увидеть все доступные параметры с объемом:
объем докераПосле ввода указанной выше команды вы должны увидеть следующий вывод:
Использование: docker volume COMMANDУправляйте объемами
Команды:
создать Создать том
inspect Показать подробную информацию об одном или нескольких томах
ls Список томов
prune Удалить все неиспользуемые локальные тома
rm Удалить один или несколько томов
Запустите docker volume COMMAND --help, чтобы получить дополнительную информацию о команде.
Создать том
Чтобы создать том данных, вам сначала нужно будет создать том данных на хосте Docker и присоединить том к контейнеру.
Вы можете создать том Docker с помощью команды «docker volume create».Например, используйте следующую команду для создания нового тома Docker с именем myvolume:
том докера создать myvolumeВы должны увидеть следующий результат:
мой объемВы можете перечислить свой существующий том, используя следующую команду:
объем докера lsВы должны увидеть следующий результат:
НАЗВАНИЕ ОБЪЕМА ДРАЙВЕРАместный c2d2815ba1a75fbfe5d0a4b69d94269e55ccbc138c7d2e19504e501f1dbe634f
местный myvolume
Если вы хотите увидеть больше информации о томе, выполните следующую команду:
докер проверяет myvolumeПосле выполнения указанной выше команды вы должны получить следующий результат:
["CreatedAt": "2020-09-12T04: 51: 31Z",
«Водитель»: «местный»,
"Ярлыки": ,
«Точка монтирования»: «/ var / lib / docker / volume / myvolume / _data»,
«Имя»: «myvolume»,
"Параметры": ,
«Сфера»: «местный»
]
Смонтировать том
На данный момент у вас есть один том с именем myvolume. В этом примере вы создадите контейнер и подключите myvolume к контейнеру.
Вы можете использовать параметр -mount для монтирования тома. Базовый синтаксис для подключения тома к контейнеру показан ниже:
docker run --mount source = имя-тома, назначение = путь-внутри-контейнера docker-imagesНапример, чтобы создать контейнер Ubuntu и подключить myvolume к контейнеру, выполните следующую команду:
docker run -it --name = volumecontainer --mount source = myvolume, destination = / data ubuntuЭта команда извлечет образ Ubuntu из Docker Hub, запустит контейнер в интерактивном режиме с именем volumecontainer и смонтирует контейнер myvolume в / data внутри каталога / data:
Не удалось найти изображение ubuntu: latest локальнопоследнее: извлечение из библиотеки / ubuntu
54ee1f796a1e: вытягивание завершено
f7bfea53ad12: Вытягивание завершено
46d371e02073: Вытягивание завершено
b66c17bbf772: Вытягивание завершено
Дайджест: sha256: 31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6eee2cda2be67a5
Статус: загружено более новое изображение для ubuntu: последнее
корень @ 06a477c4e444: / #
Вы можете проверить смонтированный том с помощью следующей команды:
[электронная почта защищена]: / # lsВы должны увидеть каталог данных в следующем выводе:
bin загрузочные данные dev и т. д. главная lib lib32 lib64 libx32 media mntopt proc root запустить sbin srv sys tmp usr var
Теперь мы создадим образец файла с именем file.txt внутри каталога / data с помощью следующей команды:
echo "Это тестовый файл!"> / данные / файл.текстВыйдите из контейнера с помощью следующей команды:
выходСнова запустите тот же контейнер с помощью следующей команды:
Docker контейнер запускает volumecontainerЗатем прикрепите работающий контейнер с помощью следующей команды:
docker exec -it volumecontainer / bin / bashПроверьте, есть ли у вашего файла.txt является постоянным со следующим:
данные кошки / файл.текстПосле ввода указанной выше команды вы должны получить следующий результат:
Это тестовый файл!
Совместное использование данных между контейнерами
Вы также можете обмениваться данными между несколькими контейнерами, используя том Docker.
Как вы знаете, мы создали том с именем myvolume и новый контейнер с именем volumecontainer, используя этот том. Мы также создали файл с именем file.txt внутри тома.
Теперь мы создадим еще один контейнер с именем volumecontainer1 с тем же объемом myvolume, используя следующую команду:
docker run -it --name = volumecontainer1 --mount source = myvolume, destination = / data ubuntuЗапустите команду ls, как показано ниже:
lsВы должны увидеть каталог данных в следующем выводе:
bin загрузочные данные dev и т. д. домой lib lib32 lib64 libx32media mnt opt proc root run sbin srv sys tmp usr var
Выполните следующую команду, чтобы проверить файл.текст:
кошка / данные / файл.текстВы должны увидеть тот же контент, который вы создали в предыдущем контейнере:
Это тестовый файл!
Смонтировать каталог как том
Вы можете использовать каталог, расположенный внутри вашей хост-системы Docker, в качестве тома и подключить его к контейнеру. Вы также можете использовать параметр -v для достижения того же, как показано ниже:
docker run -v "имя_каталога": имя_тома изображение-докераСоздайте каталог с именем / data внутри хоста Docker с помощью следующей команды:
mkdir / ДанныеЗатем создайте несколько файлов в каталоге / Data:
cd / данныесенсорный файл1.txt file2.txt file3.текст
Создайте новый контейнер, используя каталог / Data в качестве тома, с помощью следующей команды:
docker run -it --name = data1 -v / Data: / Data ubuntuЭта команда создаст новый контейнер и смонтирует том с именем / Data.
Выполните следующую команду, чтобы проверить содержимое каталога / Data:
ls -l / Data /Вы должны увидеть все файлы, которые мы ранее создали в хост-системе, как показано ниже:
всего 0-rw-r - r-- 1 root root 0 сен 12 05:41 файл1.текст
-rw-r - r-- 1 root root 0 сен 12 05:41 файл2.текст
-rw-r - r-- 1 root root 0 сен 12 05:41 file3.текст
Удалить том Docker
Вы можете легко удалить или удалить том, используя следующий синтаксис:
том docker rm имя томаНапример, чтобы удалить том с именем myvolume, выполните следующую команду:
объем докера rm myvolumeВы должны получить следующую ошибку:
Ответ от демона об ошибке: удалить myvolume:том используется - [06a477c4e4444c0f815a1ec4a151a8
339bf53d5060c492af867bcaebe531dd5d, fd8d05a027a755f
1df004ccf62568b5d66989c2112115c8a652ddbc8eb960948]
Это потому, что ваш том используется контейнером. Итак, вам нужно будет остановить и удалить контейнер перед извлечением объема.
Чтобы остановить и удалить контейнер, выполните следующую команду:
контейнер docker stop volumecontainer volumecontainer1контейнер для докеров rm volumecontainer volumecontainer1
Теперь вы можете легко удалить громкость.
Заключение
В приведенном выше руководстве вы узнали, что такое том Docker, как его создать и как смонтировать внутри контейнера. Вы также узнали, как обмениваться данными между несколькими контейнерами с помощью тома.