2016-07-26 3 views
0

В моей предыдущей компании мы приняли архитектуру микросервиса и использовали Docker для ее реализации. Средний размер наших изображений Docker составлял ~ 300 МБ - ~ 600 МБ. Однако моя новая компания использует Docker в основном для рабочего процесса разработки, а средний размер изображения составляет ~ 1,5 ГБ - ~ 3 ГБ. Некоторые из более крупных изображений (10 ГБ +) активно реорганизуются для уменьшения размера изображения.Какой размер изображения Docker считается «слишком большим»?

Из всего, что я прочитал, я чувствую, что эти изображения слишком велики, и мы столкнемся с проблемами по очереди, но остальная часть команды считает, что Docker Engine и Docker Swarm должны обрабатывать эти размеры изображений без проблем.

Мой вопрос: Есть ли приемлемый идеальный диапазон для изображений Docker, и какие подводные камни (если есть) я столкнусь с попыткой использовать рабочий процесс с изображениями в формате GB?

ответ

-1

Docker сам по себе не может справиться с ними, я ничего не могу сказать о рое. «Насколько велика слишком большая», хотя на что-то может ответить только ваша команда. Если изображение составляет 5 ГБ и 90% от него важно для приложения, я бы не сказал, что он раздулся. Если изображение составляет всего 300 М, но только 10% его требуется приложению, я бы сказал, что оно раздуто.

FWIW, в зависимости от того, что сейчас «новая» ваша «новая компания», это, наверное, лучше, если вы не катите лодку.

1

В моем, хотя идеальный размер идеально подходит только для вас. Для меня и моей нынешней компании у нас нет изображения размером более 1 ГБ.

Если вы используете изображение с размером 10 ГБ и не имеете проблем (это когда-либо возможно ?!), так что это нормально для вас.

В качестве примера проблемного случая вы можете рассмотреть такой вопрос: «все нормально, что я жду 1-2 часа, пока мое изображение находится под развертыванием через Интернет на удаленном сервере/dev-машине?», По всей вероятности, это не в порядке. С другой стороны, пока вы не сталкиваетесь с такой проблемой, у вас нет проблем вообще.
Еще одна проблема заключается в том, что небольшое изображение запускается на пару секунд, а огромный запускается в течение нескольких минут. Также вы можете нарушить схему «горячего развертывания», если вы ее используете.

Также может быть уместно проверить, почему изображение очень велико, вы можете прочитать how layers work. Вскоре, если у вас есть 2 Dockerfile:
Первая:

RUN download something huge that weight 5GB 
RUN remove something huge from above 

Второе:

RUN download something huge that weight 5GB &&\ 
    remove something huge from above 

Как результат, второе изображение вес 5ГБ меньше, чем первый, в то время как они одинаковы внутри.

Другим трюком является использование небольшого базового изображения с самого начала. Просто сравните эту разницу:

IMAGE NAME  SIZE 
busybox  1 MB 
alpine   3 MB 
debian   125 MB 
ubuntu   188 MB 

Хотя Debian и Ubuntu являются почти то же самое внутри, это избавит вас от запуска 50Мб, и потребуется меньше зависимостей в будущем.

+0

Спасибо за ответ. Однако мой вопрос заключался не в том, «как я могу уменьшить размер изображения», а скорее как «если мое изображение как можно меньше, и это STILL 3GB, с какими проблемами я столкнусь ...?» – user1873858