Ты не.Все, что вы измените в контейнере Docker, будет потеряно, как только контейнер будет удален.Кроме того, вам необходимо регулярно удалять контейнеры, чтобы изменить такие параметры, как базовый образ (если вам нужен какой-то патч безопасности), параметры сети или переменные среды.
Стандартный шаблон для этого включает две вещи:
Не устанавливайте программное обеспечение и не вносите другие изменения конфигурации в работающий контейнер.Вместо этого напишите Dockerfile
, который работает для вас, включите его в систему контроля версий и используйте docker build
для создания изображения из него.(Если у вас что-то не так, вы можете легко исправить это и запустить заново; если вам нужно что-то обновить через шесть месяцев, у вас есть письменный отчет о том, что вы сделали.)
Если вашему контейнеру требуется постоянное состояние, начните его с docker run -v
или аналогичной опции, чтобы смонтировать каталог хоста или именованный том в контейнер.Хранящиеся там данные переживут контейнер.
Теоретически docker commit
может превратить контейнер в изображение, но его использование на самом деле не является наилучшей практикой.Изображения, которые вы создаете таким образом, не могут быть воссозданы или обновлены (опять же, представьте критическое исправление безопасности в базовом базовом образе).В некоторых случаях в фиксированном контейнере даже не будет данных, которые вы хотите сохранить (например, вы не можете с пользой фиксировать контейнер MySQL или PostgreSQL).