Возможно ли создать новый образ Docker из контейнера Docker, который был использован?

#docker

#docker

Вопрос:

Пример:

Создайте контейнер Docker для экземпляра WordPress. Используйте экземпляр WordPress, добавляя записи в блоге, страницы, плагины и т.д.

Создайте новый образ Docker на основе именно этого контейнера Docker, чтобы изображение содержало все записи в блоге, страницы, плагины и т.д.

Теперь создайте новый контейнер из этого образа, чтобы, когда он появится из недр Docker, в нем были все записи в блоге, страницы, плагины и т.д.

и если нет … как бы вы предложили достичь этого результата?

Спасибо!

Комментарии:

1. В руководстве по сборке и запуску вашего образа в Docker описывается стандартный процесс создания образа с использованием файла Dockerfile; вы можете передать это в систему управления версиями и при необходимости перестроить образ. В конкретном случае образа wordpress Docker Hub Docker Hub он сконструирован таким образом, что вы не можете создать производный образ с предварительно загруженным содержимым ни через docker build , ни docker commit через.

2. Спасибо, Дэвид. Я довольно новичок в Docker и все еще пытаюсь убедиться, что это правильный путь для того, что я пытаюсь сделать. Ваши ссылки полезны. Исходя из этого комментария и из другого ответа, вы хотите сказать, что то, что я описываю, возможно, но вы предлагаете создать Dockerfile, который содержит все? Спасибо.

3. Это должно быть, но вы, возможно, не сможете повторно использовать некоторые из доступных готовых частей. Логически существуют отдельные уровни «языковой среды выполнения», «WordPress», настроек, которые вы описываете здесь, и фактического пользовательского контента; Я думаю, что последние два элемента хранятся в одном дереве каталогов, и поэтому управлять хранилищем может быть сложно, но все же сделать возможным перенос данных существующего контейнера на более новый образ.

Ответ №1:

Да, это очень возможно с помощью command docker commit container_name image_name:image_tag .

Документацию по команде можно найти здесь. Здесь также есть очень подробная статья на эту тему.

Комментарии:

1. Я вообще не считаю это лучшей практикой для использования docker commit вообще. В случае OP, скажем, в базовой установке WordPress есть уязвимость в системе безопасности; они никак не могут обновить базовый образ без ручного повторного запуска всех своих настроек поверх него. Гораздо лучший подход — написать сценарий для этого в Dockerfile .

2. Я согласен, но OP не спрашивал, было ли это хорошей идеей, но было ли это возможно вообще.