Если я хочу вернуть контейнер, я могу попытаться зафиксировать изображение, а затем удалить контейнер и создать новый контейнер из зафиксированного изображения. Но если я сделаю это, том будет удален и все мои данные исчезнут
Как объясняется в руководстве пользователя докера, тома данных предназначены для сохранения данных вне файловой системы контейнера. Это также облегчает обмен данными между несколькими контейнерами.
Хотя Docker никогда не удалит данные в томах (если только вы не удалите связанный контейнер с ними docker rm -v
), тома, на которые не ссылается ни один контейнер Docker , называются висячими томами . От этих свисающих томов трудно избавиться и труднее получить доступ.
Это означает, что, как только последний контейнер, использующий том, будет удален, том данных будет зависать, и его содержимое становится труднодоступным.
Чтобы предотвратить эти висячие тома, нужно создать дополнительный докер-контейнер, используя том данных, который вы хотите сохранить; так что всегда будет хотя бы тот докер контейнер, ссылающийся на том. Таким образом, вы можете удалить Docker-контейнер, на котором запущено приложение WordPress, без потери легкости доступа к содержимому тома данных.
Такие контейнеры называются контейнерами с объемом данных .
Должен быть какой-то простой способ сделать резервную копию моего контейнера плюс объемные данные, но я нигде не могу его найти.
резервное копирование образов докера
Чтобы создать резервные копии образов Docker, используйте команду docker save, которая создаст архив tar, который впоследствии можно будет использовать для создания нового образа docker с помощью команды загрузки docker .
резервные док-контейнеры
Вы можете сделать резервную копию контейнера Docker различными способами
- совершая новый докер образ на основе состояния текущего докер контейнера с помощью докер фиксации команды
- экспортируя файловую систему контейнера docker в виде архива tar с помощью команды экспорта docker . Позже вы сможете создать новый образ Docker из этого архива tar с помощью команды импорта Docker .
Имейте в виду, что эти команды будут только создавать резервные копии файловой системы многоуровневого контейнера Docker. Это исключает объемы данных .
тома данных резервного копирования
Для резервного копирования тома данных вы можете запустить новый контейнер, используя том, для которого вы хотите выполнить резервное копирование, и выполнить команду tar, чтобы создать архив содержимого тома, как описано в руководстве пользователя докера .
В вашем конкретном случае, объем данных используется для хранения данных для сервера MySQL. Поэтому, если вы хотите экспортировать архив tar для этого тома, вам сначала нужно остановить сервер MySQL. Для этого вам придется остановить контейнер WordPress.
резервное копирование данных MySQL
Другим способом является удаленное подключение к серверу MySQL для создания дампа базы данных с помощью команды mysqldump . Однако, чтобы это работало, ваш сервер MySQL должен быть настроен на прием удаленных подключений, а также иметь пользователя, которому разрешено подключаться удаленно. Это может не относиться к используемому вами образу WordPress Docker.
редактировать
Docker недавно представил плагины томов Docker, которые позволяют делегировать обработку томов плагинам, реализованным производителями.
У docker run
команды есть новое поведение для -v
опции. Теперь можно передать ему имя тома . Созданные таким образом тома названы и на них легче ссылаться позже, что облегчает проблемы с висячими томами .
Редактировать 2
Docker ввел docker volume prune
команду, чтобы легко удалить все висячие тома.