Какая разница между докерером и кубернетами?
Погружаясь в Docker, Google Cloud и Kubernetes, и пока еще не совсем ясно поняли все три из них, мне кажется, что эти продукты пересекаются, но они не совместимы.
Например, файл docker-compose необходимо переписать, чтобы приложение можно было развернуть в Kubernetes.
Может ли кто-нибудь дать общее описание того, где перекрываются Docker, Docker-Compose, Docker Cloud и Kubernetes и где одно зависит от другого?
Ответы
Ответ 1
Докер:
Docker - это контейнерная технология, которая позволяет вам контейнировать ваши приложения. Docker - это ядро для использования других технологий.
Докер Составьте:
Позволяет настраивать и запускать несколько док-контейнеров. В основном это используется в качестве помощника, когда вы хотите запустить несколько контейнеров Docker и не хотите запускать каждый из них отдельно, используя docker run...
Docker compose используется для запуска контейнеров на одном хосте.
Докер Рой:
Docker Swarm предназначен для запуска и подключения контейнеров на нескольких хостах. Docker swarm - это инструмент управления и оркестровки контейнерных кластеров. Он управляет контейнерами, работающими на нескольких хостах, и выполняет такие функции, как масштабирование, запуск нового контейнера при сбое, сетевые контейнеры...
Docker Swarm - это докер в производстве. Это встроенный инструмент оркестровки Docker, встроенный в Docker Engine.
Док файл Swarm с именем stack file очень похож на файл docker compose.
Kubernetes:
Инструмент оркестровки контейнеров, разработанный Google. Цель Кубернетеса очень похожа на цель для роя Docker.
Docker Cloud:
Платная корпоративная докерская служба, позволяющая создавать и запускать контейнеры на облачных или локальных серверах. Он предоставляет веб-интерфейс и центральную панель управления для запуска и управления контейнерами, а также предоставляет все функции докера в удобном веб-интерфейсе.
Обновить:
Docker cloud "частично" снят с производства
Службы в Docker Cloud, которые обеспечивают управление приложениями, узлами и кластером роя, будут закрыты 21 мая... автоматические сборки и службы хранения реестра не будут затронуты и будут по-прежнему доступны
Ответ 2
В дополнение к ответу @yamenk, я хотел бы добавить здесь несколько деталей, которые могут помочь людям в их путешествии по пониманию Kubernetes.
Короткий ответ:
-
docker-compose
: это инструмент, который берет YAML файл, который описывает ваше мультиконтейнерное приложение и помогает вам создавать, запускать/останавливать, удалять все эти контейнеры без необходимости вводить несколько команд docker...
для каждого контейнера. -
Kubernetes
: это платформа для управления контейнерными рабочими нагрузками и сервисами, которая облегчает декларативную настройку и автоматизацию. Что? 🤔 Продолжайте читать...
Docker Compose
(из документов): Compose - это инструмент для определения и запуска многоконтейнерных приложений Docker. С Compose вы используете файл YAML для настройки служб приложений. Затем с помощью одной команды вы создаете и запускаете все службы из вашей конфигурации.
Compose имеет команды для управления всем жизненным циклом вашего приложения:
- Запускать, останавливать и перестраивать службы
- Просмотр статуса запущенных сервисов
- Потоковая запись журнала запущенных сервисов
- Запустить одноразовую команду в службе
Kubernetes
(из Введения в Kubernetes): Kubernetes - это контейнерный оркестратор, такой как Docker Swarm, Mesos Marathon, Amazon ECS, Hashicorp Nomad. Контейнерные оркестраторы - это инструменты, которые группируют хосты для формирования кластера и помогают нам убедиться в правильности приложений:
- отказоустойчивы,
- можно масштабировать, и делать это по требованию
- оптимально использовать ресурсы
- может обнаруживать другие приложения автоматически и общаться друг с другом
- доступны из внешнего мира
- можно обновить/откатить без каких-либо простоев.
Многие люди утверждают, что Kubernetes трудно учиться. Это потому, что это решает ряд проблем, и люди пытаются понять, не зная всех предпосылок. Это усложняет. Начните собирать части головоломки вместе, читая о понятиях/терминах, подобных следующему. Этот процесс поможет вам понять, какие проблемы пытается решить Kubernetes:
- 12-факторные приложения,
- Автоматическая упаковка
- Механизмы самовосстановления,
- Горизонтальное масштабирование,
- Обнаружение услуг и балансировка нагрузки,
- Автоматические развертывания и откаты,
- Сине-зеленые развертывания/Канарские развертывания
- Секреты и управление конфигурацией,
- Хранение оркестровки
А поскольку в отношении контейнеров и управления ими существует много разных вещей, следите за ландшафтом Cloud Native:
Интерактивная версия здесь: landscape.cncf.io/
![enter image description here]()
Ответ 3
первое различие между движком контейнера и контейнером-оркестром.
docker
- это контейнерный движок, он заставляет вас создавать и запускать не более одного контейнера в большинстве случаев локально на вашем ПК для целей разработки.
docker-compose
- это утилита Docker для запуска нескольких контейнеров и позволяет им обмениваться томами и сетью через функции движка докеров, запускается локально, чтобы эмулировать состав услуги и удаленно на кластерах.
Kubernetes - это платформа для оркестровки контейнеров, она заботится о запуске контейнеров и улучшает возможности движка, поэтому контейнеры могут быть составлены и масштабированы для обслуживания сложных приложений (например, PaaS, управляемый вами или облачным провайдером). Основная функция Kubernetes - отделить инфраструктуру от приложения с помощью контейнеров, а также открыть для других движков, которые Docker, например, может запускать контейнеры с помощью rkt или cri-o.
Облако докеров также является предложением PaaS, которое позволит запускать и организовывать контейнеры через API-интерфейс docker
.
Теперь, в зависимости от ваших потребностей, уровня контроля над инфраструктурой и целевой аудиторией, вы можете использовать либо Kubernetes на baremetal, либо Azure ACS или Google GKE и т.д.
Надеюсь, это помогло:)
Отношения
Ответ 4
Если вы используете сетевые контейнеры с одним и тем же хостом, перейдите на docker compose.
Если вы используете сетевые контейнеры на нескольких хостах, выберите kubernetes.
Ответ 5
Докер Составьте:
В файле docker-compose.yml
каждая запись может дополнительно получить docker-compose
для создания образа. каждая запись может представлять отдельный контейнер, который мы хотим построить, и каждая запись определяет сетевые требования или порты.
Kubernetes:
Kubernetes ожидает, что все образы уже будут созданы, и для каждого объекта, который мы хотим создать, есть один файл конфигурации, и мы должны вручную настроить все сети.
Поэтому мы гарантируем, что наш образ размещен на Docker Hub, создадим один файл конфигурации для создания контейнера и один файл конфигурации для настройки сети.
Ответ 6
Docker-Compose - это файл развертывания, который предопределил один или несколько контейнеров с его средой, такой как тома, сеть, команда для запуска и так далее.
Kubernetes, с другой стороны, представляет собой систему, которая управляет докерными контейнерами и другими микросервисами и делает их масштабируемыми и надежными на нескольких узлах.
Ответ 7
В двух словах, если вы хотите, чтобы несколько контейнеров докеров взаимодействовали друг с другом за один раз, вам нужно написать файл docker-compose.