Особливості томів Docker
- Спільний доступ до обсягів даних та зберігання між кількома контейнерами та файловими системами хоста.
- Від'єднання контейнерів від сховища.
- Не видаляє дані, що містяться під час видалення контейнера.
- Легко створюйте резервні копії, відновлюйте та мігруйте дані.
У цьому посібнику ми пояснимо, що таке том Docker і як ним користуватися, а також як змонтувати том у Docker.
Вимоги
- Система під управлінням Linux із встановленим Docker.
- Кореневий пароль налаштовано.
Основний синтаксис тому Docker
Ви можете використовувати команду “docker volume”, щоб переглянути всі доступні опції з гучністю:
обсяг докераВи повинні побачити наступний результат після введення вищевказаної команди:
Використання: об'єм докера КОМАНДАУправління обсягами
Команди:
create Створити том
перевірити Відображення детальної інформації про один або кілька томів
ls Список томів
чорнослив Видалити всі невикористані локальні томи
rm Видаліть один або кілька томів
Запустіть 'docker volume COMMAND --help' для отримання додаткової інформації про команду.
Створіть том
Щоб створити том даних, спочатку потрібно створити обсяг даних на хості Docker і приєднати том до контейнера.
Ви можете створити том Docker за допомогою команди “docker volume create.”Наприклад, використовуйте таку команду, щоб створити новий том Docker з назвою myvolume:
докер том створитиВи повинні побачити такий результат:
мій томВи можете вказати існуючий том за допомогою такої команди:
об'єм докера лсВи повинні побачити такий результат:
НАЗВА ОБ'ЄМУ ВОДІЯлокальний c2d2815ba1a75fbfe5d0a4b69d94269e55ccbc138c7d2e19504e501f1dbe634f
місцевий мікс
Якщо ви хочете побачити більше інформації про том, виконайте таку команду:
докер перевіритиВи повинні отримати наступний результат після запуску наведеної вище команди:
["CreatedAt": "2020-09-12T04: 51: 31Z",
"Водій": "місцевий",
"Мітки": ,
"Mountpoint": "/ var / lib / docker / volumes / myvolume / _data",
"Назва": "мій обсяг",
"Параметри": ,
"Scope": "місцевий"
]
Змонтувати том
На даний момент у вас є один том із назвою myvolume. У цьому прикладі ви створите контейнер і змонтуєте мій обсяг до контейнера.
Ви можете скористатися опцією -mount для встановлення гучності. Основний синтаксис для монтажу тому в контейнер показаний нижче:
docker run --mount source = volume-name, destination = path-inside-container 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: останнє
root @ 06a477c4e444: / #
Ви можете перевірити змонтований том наступною командою:
[захищено електронною поштою]: / # lsВи повинні побачити каталог даних у наступному висновку:
bin завантаження даних dev і т.д. home lib lib32 lib64 libx32 media mntopt proc кореневий запуск sbin srv sys tmp usr var
Тепер ми створимо зразок файлу з іменем файл.txt всередині / каталог даних наступною командою:
echo "Це тестовий файл!"> / дані / файл.txtВихід із контейнера за допомогою такої команди:
вихідЗнову запустіть той самий контейнер за допомогою такої команди:
контейнер докера запускуДалі приєднайте запущений контейнер наступною командою:
docker exec -it volumecontainer / bin / bashПеревірте, чи ваш файл.txt зберігає наступне:
дані про кішку / файл.txtВи повинні отримати наступний результат після введення вищевказаної команди:
Це тестовий файл!
Обмін даними між контейнерами
Ви також можете обмінюватися даними між кількома контейнерами, використовуючи том Docker.
Як ви знаєте, ми створили том з іменем myvolume, новий контейнер з назвою volumecontainer, використовуючи цей том. Ми також створили файл з іменем файл.txt всередині тома.
Тепер ми створимо ще один контейнер з назвою volumecontainer1 з тим самим обсягом myvolume, використовуючи таку команду:
docker run -it --name = volumecontainer1 --mount source = myvolume, destination = / data ubuntuЗапустіть команду ls, як показано нижче:
lsВи повинні побачити каталог даних у наступному висновку:
bin boot data dev і т.д. home lib lib32 lib64 libx32медіа mnt opt proc кореневий запуск sbin srv sys tmp usr var
Виконайте наступну команду перевірки файлу.txt:
cat / дані / файл.txtВи повинні побачити той самий вміст, який ви створили в попередньому контейнері:
Це тестовий файл!
Підключити каталог як том
Ви можете використовувати каталог, що знаходиться у вашій хост-системі Docker, як том і підключити його до контейнера. Ви також можете використовувати параметр -v, щоб досягти того ж, як показано нижче:
docker запустити -v "ім'я_каталогу": ім'я_тома docker_imageСтворіть каталог з іменем / дані всередині хосту Docker за допомогою такої команди:
mkdir / ДаніДалі створіть деякі файли всередині каталогу / Data:
cd / данісенсорний файл1.txt-файл2.txt-файл3.txt
Створіть новий контейнер, використовуючи каталог / Дані як том із такою командою:
docker запустити -it --name = data1 -v / Data: / Data ubuntuЦя команда створить новий контейнер і змонтує том з іменем / даними.
Виконайте таку команду, щоб перевірити вміст каталогу / Data:
ls -l / Дані /Ви повинні побачити всі створені нами раніше файли в хост-системі, як показано нижче:
всього 0-rw-r - r-- 1 кореневий корінь 0 12 вересня 05:41 файл1.txt
-rw-r - r-- 1 кореневий корінь 0 12 вересня 05:41 файл2.txt
-rw-r - r-- 1 кореневий корінь 0 12 вересня 05:41 файл3.txt
Видаліть том Docker
Ви можете легко видалити або видалити том, використовуючи такий синтаксис:
том докера rm том-назва -Наприклад, щоб видалити том з іменем myvolume, виконайте таку команду:
обсяг докера rm myvolume - -Ви повинні отримати таку помилку:
Відповідь помилки від демона: видалити myvolume:використовується обсяг - [06a477c4e4444c0f815a1ec4a151a8
339bf53d5060c492af867bcaebe531dd5d, fd8d05a027a755f
1df004ccf62568b5d66989c2112115c8a652ddbc8eb960948]
Це тому, що ваш обсяг використовується контейнером. Отже, вам потрібно буде зупинитись і вийняти контейнер перед тим, як видалити обсяг.
Щоб зупинити та видалити контейнер, виконайте таку команду:
docker контейнер зупинка volumecontainer volumecontainer1контейнер докера rm volumecontainer volumecontainer1
Тепер ви можете легко видалити гучність.
Висновок
У наведеному вище посібнику ви дізналися, що таке том Docker, як його створити та як встановити його всередині контейнера. Ви також дізналися, як обмінюватися даними між кількома контейнерами, використовуючи том.