2016-01-10 2 views
1

Я читал про докер. Я понял, что платформа помогает в устранении зависимостей между различными жизненными циклами программного обеспечения, объединяя взаимосвязи и программное обеспечение вместе.How to Docker light

На веб-сайте докера было написано, что это легкий вес, я не понял, как это может быть легкий вес, когда он имеет все связанные с ним зависимости?

Если у меня в моей системе несколько контейнеров, которые используют одну и ту же зависимость, то есть мы используем одну и ту же внешнюю библиотеку во всех контейнерах, эта зависимость будет установлена ​​снова и снова для всех контейнеров?

Я новичок в Docker, и поэтому любая помощь была бы замечательной для меня.

+1

Связанный (дубликат?): [Как Docker отличается от обычной виртуальной машины?] (Http://stackoverflow.com/q/16047306/744178) – jwodder

+0

@jwodder Это не дубликат, я спрашиваю, как это легкий вес и то, как несколько контейнеров имеют одну и ту же зависимость, если они это делают. – kkk

+0

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

ответ

4

докер иногда описывается как «легкий вес» по сравнению с виртуальными машинами, так как ему:

  • не загружается отдельной ОС на виртуальную машину, и поэтому быстрее для запуска/остановки
  • В большинстве случаев требуется меньше дискового пространства из-за совместного использования общих слоев между изображениями
  • Опять же из-за слоев изображения, инкрементные развертывания новых версий приложений меньше и, следовательно, быстрее, чем виртуальные машины
  • Предоставляет ядро ​​в контейнерах и, следовательно, использует меньше памяти

Конечно, это в значительной степени маркетинговый разговор, «легкий вес» не является ни техническим, ни конкретным. Возьмите его с солью.

Если у меня в моей системе несколько контейнеров, которые используют одну и ту же зависимость, то есть мы используем одну и ту же внешнюю библиотеку во всех контейнерах, эта зависимость будет установлена ​​снова и снова для всех контейнеров?

Если вы сделаете это правильно, в нескольких контейнерах будет использоваться общий базовый уровень и, следовательно, не будет иметь несколько копий этих внешних библиотек, занимающих дисковое пространство.

У меня есть еще один вопрос, если у меня есть несколько микросервисов, тогда каждый микросервис возьмет контейнер?

Да, обычно у вас есть один основной процесс на контейнер, а микросервис - независимый процесс.

+0

У меня есть еще один вопрос: если у меня есть несколько микросервисов, то каждый микросервис возьмет контейнер? Если вы можете предоставить ссылку или пример, объясняющий, как докер работает для микросервисов, что было бы действительно полезно. – kkk