#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 и все будет ок.
Комментариев нет:
Отправить комментарий