Страницы

Поиск по вопросам

воскресенье, 8 марта 2020 г.

большой образ Docker

#docker


При создании Docker образа приходится тянуть 8GB пакетов с хост системы.

Методом COPY, потом удалять. Но вывод docker images показывает размер контейнера
с учетом скопированных в слое ранее пакетов. И при каждом следующем релизе образ растет
все больше.

Какой механизм можно использовать для доставки пакетов на время генерации образа?
    


Ответы

Ответ 1



После создания окончательного образа вы можете сжать все слои в один. Это позволит сократить образ, так как из него будут удалены удаленные файлы. Сейчас эти файлы по прежнему хранятся в образе в других слоях. Самый простой способ. Запустить ваш образ, что бы получить контейнер и потом выполнить вот такую команду docker export | docker import - <новое имя образа>:<новая метка образа> Это приведет к потере всей истории образа Второй способ это использовать утилиту docker-squash docker save > image.tar sudo docker-squash -i image.tar -o squashed.tar cat squashed.tar | docker load

Ответ 2



Самый оптимальный вариант, использовать статик сервер. И Wgetom тянуть установочные пакеты.

Ответ 3



Что бы уменьшить конечный размер имижда в конце каждой команде добавь "&& yum clean all" вот так: yun install httpd && yum clean all это очистит загруженные файлы и уменьшит размер слоя в файловой системе и тем самым уменьшит размер итогового имиджа. Для Ubuntu можно стирать /var/cache/apt/*

Ответ 4



Тут был кейс, что я юзал CentOS docker в CentOS по умолчанию поставлялся с aufs, с которым он некорректно работает. Требуется сменить на devicemapper и все будет ок.

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

Отправить комментарий