ЧТО ТАКОЕ ДОКЕР?
Представьте, что вы шеф-повар и хотите поделиться своим удивительным рецептом с друзьями. Вы могли бы дать им список ингредиентов и инструкции, но это может не сработать, потому что их кухни могут быть устроены по-другому, и они могут уже готовить другие рецепты.
Теперь подумайте о программном обеспечении как о рецептах. Разные компьютеры имеют разные настройки, и на них уже могут быть запущены разные программы. Когда вы создаете программное обеспечение на своем компьютере, оно может работать там идеально, но если вы отправите его другу, оно может работать не так из-за различий в настройках его компьютера.
Здесь на помощь приходит Docker. Docker похож на волшебную кулинарную коробку, которая позволяет вам упаковать ваш рецепт (программное обеспечение) вместе со всеми ингредиентами (библиотеками, настройками и всем необходимым) в один пакет. Этот пакет называется «контейнер». Эти контейнеры работают одинаково, где бы они ни находились, например, на кухне вашего друга (компьютере).
ЧАСТИ О DOCKER
- Контейнеризация Docker помогает создавать контейнеры, объединяющие ваше программное обеспечение, его настройки и зависимости. Это как мини-виртуальный компьютер только для вашего программного обеспечения.
- Согласованность. Поскольку все, что нужно вашему программному обеспечению, упаковано в контейнер, оно одинаково работает на разных компьютерах. Больше не нужно беспокоиться о проблемах «это работает на моей машине».
- Изоляция. Контейнеры отделены друг от друга. Если в одном контейнере возникла проблема, это не повлияет на другие, точно так же, как утечка в одном ингредиенте не испортит остальные ингредиенты вашего рецепта.
- Эффективность. Контейнеры совместно используют ресурсы операционной системы вашего компьютера. Это означает, что им не хватает ресурсов, и они быстро запускаются. Это похоже на приготовление нескольких блюд одновременно, не перегружая кухню.
- Портативность. Вы можете взять свой Docker-контейнер и запустить его на другом компьютере, будь то компьютер вашего коллеги или сервер в центре обработки данных. Везде это будет работать одинаково.
- Масштабирование. Если вам нужно больше программного обеспечения, вы можете легко создать больше контейнеров. Это похоже на приготовление нескольких порций блюда для большой вечеринки.
Различия между Docker и виртуальными машинами.

Докер:
Думайте о Docker как о специальной кулинарной коробке, в которую вы можете упаковать свой рецепт и все ингредиенты. Это похоже на карту рецептов со всеми специями, овощами и мясом, необходимыми для блюда, аккуратно упакованными в одну коробку.
- Эффективность. Эта коробка для приготовления умна — в нее помещается только то, что необходимо для приготовления блюда. Это все равно, что принести на кухню друга только те ингредиенты, которые вам нужны для приготовления.
- Обмен ресурсами. Если что-то прольется или пойдет не так внутри коробки, это не испортит всю кухню вашего друга. Он хранит все в себе и отдельно.
- Легкий. Поскольку в него входит только самое необходимое, его очень легко носить с собой и устанавливать на разных кухнях.
Виртуальные машины (ВМ):
Теперь представьте себе виртуальную машину как небольшую кухню внутри вашей кухни. Там есть своя плита, свои ингредиенты и своя посуда. На этой маленькой кухне можно приготовить совершенно другой рецепт.
- Изоляция. Если вы случайно что-нибудь сожжете на этой мини-кухне, ваша основная кухня будет в безопасности. Беспорядок содержится на мини-кухне.
- Более сложная установка. Установка этой мини-кухни занимает немного больше времени и места, поскольку по сути вы создаете уменьшенную версию своей основной кухни.
- Отдельные пакеты. Поскольку это мини-кухня, вы можете принести с собой больше продуктов, чем вам действительно нужно для рецепта. Это как запасной набор посуды на всякий случай.
Простыми словами:
- Docker — это суперорганизованная кулинарная коробка, в которой есть только нужные ингредиенты и рецепт блюда. Он эффективен, аккуратно распределяет ресурсы и его легко носить с собой.
- Виртуальные машины похожи на мини-кухни внутри вашей основной кухни. Они немного более автономны, но требуют больше усилий для настройки и могут содержать некоторые дополнительные вещи, которые вам не всегда нужны.
И Docker, и виртуальные машины имеют свое применение, например, приносят идеальный рецепт на кухню вашего друга (Docker) или создают небольшую отдельную кухню для приготовления разных блюд (VM). Это зависит от того, что вам нужно в данный момент!