Docker (программное обеспечение)

редактировать
Программное обеспечение с открытым исходным кодом ПО для развертывания контейнерных приложений

Docker
Docker (движок контейнера) logo.svg
Автор (ы) Соломон Хайкс
Разработчик (и) Docker, Inc.
Первоначальный выпуск20 марта, 2013; 7 лет назад (20.03.2013)
Стабильный выпуск 19.03.13 / 16 сентября 2020 г.; 27 дней назад (2020-09-16)
Репозиторий Измените в Викиданных
Написано наGo
Операционной системе Linux, Windows, macOS
Платформа x86-64, ARM, s390x, ppc64le
Тип виртуализация на уровне ОС
Лицензия
Веб-сайтwww.docker.com Измените это в Викиданных

Docker - это набор продуктов платформа как услуга (PaaS), которые используют ОС -уровневая виртуализация для доставки программного обеспечения в пакетах, называемых контейнерами. Контейнеры изолированы друг от друга и объединяют собственное программное обеспечение, библиотеки и файлы конфигурации; они могут общаться друг с другом через четко определенные каналы. Все контейнеры запускаются одним ядром операционной системы и поэтому используют меньше ресурсов, чем виртуальные машины.

. У службы есть как бесплатные, так и премиум-уровни. Программное обеспечение, на котором размещаются контейнеры, называется Docker Engine . Впервые он был запущен в 2013 году и разработан Docker, Inc.

Содержание

  • 1 История
  • 2 Принятие
  • 3 Работа
    • 3.1 Компоненты
    • 3.2 Инструменты
  • 4 См. Также
  • 5 Примечания
  • 6 Ссылки
  • 7 Внешние ссылки

История

Docker Inc. была основана Соломоном Хайксом и Себастьеном Палом во время Y Combinator Summer Группа инкубаторов стартапов 2010 и запущена в 2011. Хайкс начал проект Docker во Франции как внутренний проект в рамках dotCloud, компании, предлагающей платформу как услугу.

Docker дебютировал в Санта-Кларе на PyCon в 2013 году. Он был выпущен как с открытым исходным кодом в марте 2013 года. В то время он использовал LXC в качестве среды выполнения по умолчанию. Год спустя, с выпуском версии 0.9, Docker заменил LXC собственным компонентом, написанным на языке программирования Go.

В 2017 году Docker создал проект Moby для открытых исследования и разработки.

Принятие

  • 19 сентября 2013 г.: Red Hat и Docker объявили о сотрудничестве в области Fedora, Red Hat Enterprise Linux (RHEL) и OpenShift.
  • 15 октября 2014 г.: Microsoft объявила об интеграции механизма Docker в Windows Server, а также о встроенной поддержке Docker. роль клиента в Windows.
  • Ноябрь 2014 г.: объявлены контейнерные сервисы Docker для Amazon Elastic Compute Cloud (EC2).
  • 10 ноября 2014 г.: Docker объявила о партнерстве с Stratoscale.
  • 4 декабря 2014 г.: IBM объявила о стратегическом партнерстве с Docker, которое позволяет Docker более тесно интегрироваться с IBM Cloud.
  • 22 июня 2015 г.: Docker и несколько других компаний объявили, что они работают над новым стандартом для программных контейнеров, не зависящим от поставщика и операционной системы.
  • Апрель 2016: Windocks, независимый поставщик программного обеспечения, выпустил перенос проекта с открытым исходным кодом Docker на Windows, поддерживающий Windows Server 2012 R2 и Server 2016 со всеми выпусками SQL Server 2008 и новее.
  • Май 2016 г.: анализ показал, что следующие организации являются основными участниками Docker: команда Docker, Cisco, Google, Huawei, IBM, Microsoft и Red Hat.
  • 8 июня 2016 г.: Microsoft объявила, что теперь Docker можно использовать изначально в Windows 10.
  • , январь 2017 г.: Анализ упоминаний профиля LinkedIn показал, что присутствие Docker выросло на 160% в 2016 году.
  • 6 мая 2019 г.: Microsoft анонсировала вторую версию подсистемы Windows для Linux ( WSL). Компания Docker, Inc. объявила, что она начала работу над версией Docker для Windows, которая работает на WSL 2. В частности, это означает, что Docker может работать в Windows 10 Home (ранее она была ограничена Windows Pro и Enterprise, поскольку использовала Hyper- V).
  • Август 2020 г.: Microsoft объявила об обратном переносе WSL2 на Windows 10 версий 1903 и 1909 (ранее WSL2 был доступен только в версии 2004), а разработчики Docker объявили о доступности Docker для этих платформ.

Работа

Docker может использовать различные интерфейсы для доступа к функциям виртуализации ядра Linux.

Docker может упаковать приложение и его зависимости в виртуальный контейнер, который может работать на любом сервере Linux. Это позволяет приложению работать в различных местах, например локально, в публичном облаке и / или в частном облаке. Docker использует функции изоляции ресурсов ядра Linux (например, cgroups и пространства имен ядра ) и файловую систему с возможностью объединения ( например, OverlayFS ), чтобы контейнеры могли работать в одном экземпляре Linux, избегая накладных расходов на запуск и обслуживание виртуальных машин.

Поскольку контейнеры Docker легковесны, можно запускать один сервер или виртуальную машину несколько контейнеров одновременно. Анализ 2018 года показал, что типичный вариант использования Docker включает запуск восьми контейнеров на каждый хост, и что четверть проанализированных организаций используют 18 или более контейнеров на хост.

Поддержка пространств имен ядром Linux в основном изолирует представление приложения о операционная среда, включая деревья процессов, сеть, идентификаторы пользователей и смонтированные файловые системы, в то время как контрольные группы ядра обеспечивают ограничение ресурсов для памяти и процессора. Начиная с версии 0.9, Docker включает свой собственный компонент (называемый «libcontainer») для прямого использования средств виртуализации, предоставляемых ядром Linux, в дополнение к использованию абстрактных интерфейсов виртуализации через libvirt, LXC и systemd-nspawn.

Docker реализует высокоуровневый API для предоставления облегченных контейнеров, которые запускают процессы изолированно.

Компоненты

Программное обеспечение Docker как Предложение услуг состоит из трех компонентов:

  • Программное обеспечение: Демон Docker , называемый dockerd, представляет собой постоянный процесс, который управляет контейнерами Docker и обрабатывает объекты контейнеров. Демон прослушивает запросы, отправленные через Docker Engine API. Клиентская программа Docker, называемая docker, предоставляет интерфейс командной строки, который позволяет пользователям взаимодействовать с демонами Docker.
  • Объекты: Объекты Docker - это различные сущности, используемые для собрать приложение в Docker. Основными классами объектов Docker являются изображения, контейнеры и службы.
    • Контейнер Docker - это стандартизированная инкапсулированная среда, в которой выполняются приложения. Контейнер управляется с помощью Docker API или интерфейса командной строки.
    • Образ Docker - это шаблон только для чтения, используемый для создания контейнеров. Образы используются для хранения и доставки приложений.
    • Служба Docker позволяет масштабировать контейнеры для нескольких демонов Docker. Результат известен как рой, набор взаимодействующих демонов, которые обмениваются данными через Docker API.
  • Реестры: Реестр Docker - это репозиторий для образов Docker. Клиенты Docker подключаются к реестрам для загрузки («вытягивания») образов для использования или загрузки («проталкивания») образов, которые они создали. Реестры могут быть публичными или частными. Два основных общедоступных реестра - это Docker Hub и Docker Cloud. Docker Hub - это реестр по умолчанию, в котором Docker ищет образы. Реестры Docker также позволяют создавать уведомления на основе событий.

Инструменты

  • Docker Compose - это инструмент для определения и запуска многоконтейнерных приложений Docker. Он использует файлы YAML для настройки служб приложения и выполняет процесс создания и запуска всех контейнеров с помощью одной команды. Утилита CLI docker-composeпозволяет пользователям запускать команды одновременно в нескольких контейнерах, например, создавать образы, масштабировать контейнеры, запускать контейнеры, которые были остановлены, и многое другое. Команды, относящиеся к манипулированию изображениями или интерактивные параметры пользователя, не актуальны в Docker Compose, поскольку они обращаются к одному контейнеру. Файл docker-compose.yml используется для определения служб приложения и включает в себя различные параметры конфигурации. Например, параметр buildопределяет параметры конфигурации, такие как путь к файлу Docker, параметр commandпозволяет переопределить команды Docker по умолчанию и многое другое. Первая общедоступная бета-версия Docker Compose (версия 0.0.1) была выпущена 21 декабря 2013 года. Первая готовая к работе версия (1.0) была выпущена 16 октября 2014 года.
  • Docker Swarm предоставляет собственные кластеризация для контейнеров Docker, которая превращает группу движков Docker в единый виртуальный движок Docker. В Docker 1.12 и выше режим Swarm интегрирован с Docker Engine. Утилита docker swarmCLI позволяет пользователям запускать контейнеры Swarm, создавать токены обнаружения, перечислять узлы в кластере и т. Д. Утилита docker nodeCLI позволяет пользователям запускать различные команды для управления узлами в рое, например, перечисление узлов в рое, обновление узлов и удаление узлов из роя. Docker управляет роями, используя алгоритм консенсуса Raft . Согласно Raft, для выполнения обновления большинству узлов Swarm необходимо согласие на обновление.

См. Также

  • Портал бесплатного программного обеспечения с открытым исходным кодом
  • icon Портал Linux

Примечания

Ссылки

Внешние ссылки

Последняя правка сделана 2021-05-17 10:42:57
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте