У меня есть контейнер с GlassFish. Когда я попытался зафиксировать изображение, оно стало 14GB. Позже я удалил /tmp/
в контейнере, который был 10 ГБ, и попытался зафиксировать изображение, но все равно это 14 ГБ. Кажется, что удаление файлов из контейнера не отражается на размере изображения. Как мне исправить эту проблему?
12
glassfish
образ Docker составляет около 1 ГБ. Хотя это чертовски большое изображение для Docker, оно все же намного меньше, чем то, что вы, похоже, строите.Ответы:
Проблема, с которой вы можете столкнуться, состоит в том, что удаление файлов в коммите не меняет того факта, что файл был там в предыдущем изображении, так что предыдущее изображение все еще 14G.
Посмотрите на часть «Слои» в этой статье: http://woudenberg.io/reduc-docker-image-size/
Чтобы решить эту проблему, вам нужно удалить вещи из / tmp / в исходном коммите, который их сгенерировал, поэтому изображение, созданное в результате этого коммита, не включает их. Это легко при использовании dockerfiles, но не уверен, если это возможно при создании изображений с коммитами.
Еще одна вещь, которую вы можете сделать, это сквош слои путем экспорта / импорта изображения.
источник
Продолжая ответ @Juan Antonio,
Dockerfile
выполнение этого не сэкономит место:Вместо этого вам нужно сделать следующее:
С другой стороны, это означает меньшее кэширование, так как если что-то изменится в этой большой командной строке, Docker придется заново запускать весь набор команд.
источник