якщо я хочу повернути контейнер, я можу спробувати зробити зображення, а потім пізніше видалити контейнер і створити новий контейнер із зробленого зображення. Але якщо я це зробити, том видаляється, і всі мої дані втрачаються
Як пояснює посібник користувача докера, обсяги даних мають намір зберігати дані поза файловою системою контейнера. Це також полегшує обмін даними між кількома контейнерами.
Хоча Docker ніколи не видаляє дані в томах (якщо ви не видалите пов'язаний контейнер з docker rm -v
), томи, на які не посилається жоден контейнер докера, називаються звисаючими томами . Ці звисаючі томи важко позбутися і важко отримати доступ.
Це означає, що як тільки видаляється останній контейнер з томом, об'єм даних стає звисаючим, а його вміст важко доступний.
Щоб уникнути цих висячих томів, фокус полягає в створенні додаткового контейнера докера, використовуючи об'єм даних, який ви хочете залишити; так що завжди буде принаймні той контейнер докера, що посилається на том. Таким чином ви можете видалити контейнер докера, у якому запущено додаток Wordpress, не втрачаючи зручності доступу до вмісту цього обсягу даних.
Такі контейнери називаються контейнерами обсягу даних .
Має бути простий спосіб створити резервну копію мого контейнера плюс дані про обсяг, але я його не можу ніде знайти.
резервні зображення докера
Для резервного копіювання зображень докера використовуйте команду docker save, яка створить архів tar, який можна буде використовувати згодом для створення нового зображення докера за допомогою команди завантаження docker .
резервні докер-контейнери
Можна створити резервну копію докерного контейнера різними способами
- здійснюючи новий докер образ на основі стану поточного докер контейнера з допомогою докер фіксації команди
- шляхом експорту файлової системи контейнера докер у архів tar, використовуючи команду експорту докера . Пізніше можна створити нове зображення докера з цього архіву tar, за допомогою команди імпорту докер .
Майте на увазі, що ці команди створюють резервну копію файлової системи з шаром контейнера докера. Це виключає обсяги даних .
обсяги даних резервного докера
Для резервного копіювання обсягу даних ви можете запустити новий контейнер, використовуючи том, який потрібно створити для резервного копіювання та виконати команду tar для створення архіву вмісту томів, як описано в посібнику користувача докера .
У вашому конкретному випадку об'єм даних використовується для зберігання даних на сервері MySQL. Отож, якщо ви хочете експортувати архів смоли для цього тома, вам потрібно спочатку зупинити сервер MySQL. Для цього вам доведеться зупинити контейнер для WordPress.
резервне копіювання даних MySQL
Інший спосіб - віддалене підключення до сервера MySQL для отримання дампа бази даних за допомогою команди mysqldump . Однак для того, щоб це працювало, ваш сервер MySQL повинен бути налаштований на прийняття віддалених з'єднань, а також мати користувача, якому дозволяється віддалено підключатися. Можливо, це не так із зображенням докера Wordpress, який ви використовуєте.
Редагувати
Нещодавно Docker представив плагіни томів Docker, які дозволяють делегувати обробку томів плагінам, реалізованим постачальниками.
docker run
Команда має нову поведінку для -v
варіанту. Тепер можна передавати йому ім'я тома . Томи, створені таким чином, називаються і легко посилаються згодом, полегшуючи проблеми, що звисають .
Редагувати 2
Докер ввів docker volume prune
команду легко видалити всі звисаючі томи.