Контейнеры и Docker – что такое и для чего служит?
Разрушительные технологии, которые меняют рынок, и путь, который мы знаем, для разработки не перестают появляться, в настоящее время мы можем выделить один из них: Контейнеры. Они коренным образом изменили то, как мы взаимодействуем с нашими приложений, от разработки до внедрения в производство.
Прежде всего, нужно понять, что контейнеры являются технологии и Docker будет платформа, среда выполнения этой технологии.
Концепция Контейнеров
Контейнеры представляют собой единство и стандартизацию программного обеспечения, которая охватывает и связывает весь код и его зависимости, что позволяет быстро и надежно запускать приложения в экосистемах (машины) – разному.
Представьте себе, далее, заявление может быть сделано в различных языках программирования, будь то Java, JavaScript, Python, и она может также иметь несколько зависимостей системы, библиотеки, необходимые для повышения производительности, преобразование изображений и так далее… Это создает целый цикл зависимости для вашего приложения, то есть, если кого-то нужно начать развивать или реализовать в другой среде, все эти зависимости должны быть предварительно установлены. Найденное решение многих предприятий, создание виртуальных машин (Вм), с необходимыми параметрами в образ виртуальной машины, так что следует установить, и только в необходимости установки программного обеспечения для виртуализации и делиться образ виртуальной машины, и разработчик был готов начать. Теперь вещи начинают становиться немного запутанным, потому что теоретически это более или менее решение, описанное за контейнеры, перенос кода в изображение, которое затем становится контейнером, и выполняется в среде выполнения (Docker, например).
Теперь вам должно быть интересно, но и потому, что тогда я должен использовать контейнер, а не виртуальных машин? Потому что такую популярность, если они делают одно и то же? Чтобы ответить на это, мы должны понять разницу вступает виртуальной машины и Контейнера.
Виртуальные машины против Контейнеров
Виртуальные машины были разработаны для запуска программного обеспечения на вершине физический сервер, что в свою очередь имитирует оборудования в частности. Гипервизор, монитором виртуальной машины, программного обеспечения, микропрограммного и аппаратного обеспечения, которая создает и запускает виртуальные машины. Это то, что находится между аппаратной и виртуальной машины, если это необходимо для виртуализации машину. В каждой виртуальной машины колесо операционная система, и у каждого есть свои собственные двоичные файлы, библиотеки и приложения, так что виртуальные машины могут иметь гигабайт.
В свою очередь, контейнеры, работают все на него операционной системы, делиться своим Ядра и, как правило, двоичные файлы и библиотеки, а также. В результате чего эти контейнеры были легкие и требуют меньше физических ресурсов машины, что делает их более портативные.
Следующая таблица показывает некоторые сходства и различия этих технологий:
Виртуальная машина | Контейнеры | |
---|---|---|
Изоляция | Обеспечивает полной изоляции от операционной системы и других виртуальных машин. | Как правило, обеспечивает изоляцию легкий хост и других контейнеров, но не обеспечивает безопасности границы такой же сильной, как ВМ. |
Операционная система | Выполняет всю операционную систему, включая ядро, требует больше системных ресурсов (ПРОЦЕССОРА, памяти и системы хранения данных). | Выполняет часть пользовательского режима операционной системы и может быть изменен, чтобы содержать только необходимые услуги для вашего приложения, используя меньше системных ресурсов. |
Совместимость с ОС | Работает практически на любой операционной системе, в виртуальной машине | Контейнеры в linux могут быть запущены на любой операционной системе, в то время как контейнеры Windows должны быть запущены на вершине той же версии Windows, размещенного |
Обновления операционной системы и зависимостей | Требуется ручное обновление каждого VM. | Просто, как правило, только обновить файл изображения контейнера для новой версии. |
Хранение | Используется, как правило, виртуальный жесткий диск (VHD) для локального хранения данных в виртуальной машине. | Использует жесткого хозяина, общий доступ к папкам через томов. |
Сети | Использует виртуальные сетевые адаптеры. | Использует экземпляр изолированный виртуальный сетевой адаптер, обеспечивая чуть меньше виртуализации, брандмауэр компьютера совместно с контейнеры, например. |
Надеюсь, что, чтобы иметь понял, немного различия, и почему популяризация контейнеров для сред разработки.
Так что такое Docker?
Теперь, когда мы понимаем, что это контейнер, а причина в них есть, мы будем в Docker, который стал стандартная услуга на рынке, для реализации этой технологии.
Docker – это программное обеспечение, контейнеров компании Docker Inc, в настоящее время обеспечивает уровень абстракции и автоматизации для виртуализации операционных систем Windows и Linux.
В Docker Inc. была основана Solomon Hykes и Себастьян Пал во время группы инкубаторы инициализации Y Combinator Summer 2010 года и выпущен в 2011. Его технология дебютировала для общественности в Санта-Клара на PyCon в 2013 году и выпущен как открытый исходный код.
Его популяризации отдал в счет внедрения крупных предприятий и по всей экосистемы развития, который был создан. Различные инструменты, касательные к контейнерам доступны, в целях содействия разработке и реализации в производственных условиях. Основные инструменты и компоненты:
Registry (Реестр): реестра docker-это архив, который позволяет загружать и скачивать изображения Docker. Эти изображения могут быть общими или частными, подавляющее большинство приложений централизует свои изображения в этом хранилище.
Docker daemon (dockerd): это процесс, настойчив в фоновом режиме, что позволяет управлять контейнерами Docker и обработки объектов контейнера.
Docker Compose: инструмент для развития и запуска нескольких контейнеров. Он использует файлы YAML для настройки услуги приложения, и запустите процесс создания и инициализации всех контейнеров с одной командой. Это облегчает, и очень, развитие, только с командой мы смогли подняться наше приложение и любой другой внешней зависимости, например, базы данных.
Docker Swarm: Инструмент для мониторинга и управления несколькими контейнерами в кластерной среде, в основном он выступает как диспетчер контейнеров, заботясь о собственном здоровье, deploys и другие нюансы. Хотя в настоящее время стандарт на рынке есть Kubernetes, он был percursor управления контейнерами Docker.
Заключение
Теперь, когда мы знаем, что контейнеры и Docker, я рекомендую вам начать изучать эту технологию, большинство компаний уже использует или ищет, чтобы приспособиться к новой форме развития. Безусловно, она облегчает жизнь разработчиков, сегодня я не могу себе представить более развиваться без использования Docker.
Сохранить себе или поделиться: