Docker и контейнеры (Часть 2) — Общие сведения о Docker

Опубликовано: 18 Апреля, 2023

  • Докер и контейнеры (Часть 6)

Введение

В первой части этой серии статей мы представили контейнеры — технологию, также известную как виртуализация операционной системы (ОС). Чтобы понять контейнеры, мы сравнили их с более знакомой (администраторам Windows Server) технологией, известной как аппаратная виртуализация. Точно так же, как контейнерная технология встроена в ядро современных дистрибутивов Linux (и станет функцией следующего выпуска Windows Server), аппаратная виртуализация аналогичным образом встроена в ядро Windows Server в виде роли сервера Hyper-V. При аппаратной виртуализации на одном хост-компьютере Hyper-V может работать несколько виртуальных машин, которые действуют как отдельные независимые компьютеры, каждый со своей операционной системой и установленными приложениями. Контейнеры, с другой стороны, содержат только код приложения, и все контейнеры, размещенные на узле контейнера, совместно используют ядро операционной системы и библиотеки узла. И точно так же, как виртуальную машину можно перемещать с одного хоста Hyper-V на другой, приложения в контейнерах можно переносить между хост-машинами Linux и даже между различными средами Linux, такими как Ubuntu, SUSE и Red Hat Enterprise Linux.

Однако хотя технология виртуализации (контейнеризация в ядре Linux или уровень гипервизора в Windows Server) является хорошим началом, она обеспечивает лишь основу. Настоящая мощь аппаратной виртуализации на платформе Windows Server проявляется в сочетании аппаратной виртуализации Hyper-V с возможностями управления приложений System Center, таких как Virtual Machine Manager (VMM) и App Controller. Точно так же реальная мощь виртуализации ОС на платформе Linux проявляется, когда вы объединяете возможности контейнеризации ядра Linux с платформой Docker.

Кончик:
Если вы хотите узнать больше о наборе приложений Microsoft System Center, перейдите на страницу бесплатных электронных книг от Microsoft Press в Microsoft Virtual Academy. Несколько электронных книг, доступных там, широко охватывают всю платформу System Center, включая:

  • Представляем Microsoft System Center 2012 R2
  • Microsoft System Center: интегрированная облачная платформа

Кроме того, вы найдете там ряд электронных книг, демонстрирующих, как приложения System Center можно использовать для развертывания, управления и обслуживания гибридных облаков, в частности:

  • Microsoft System Center: управление облаком с помощью App Controller

Искренне ваш был редактором серии для большинства этих электронных книг по System Center, и все авторы являются экспертами из команды System Center в Microsoft.

Что такое Докер?

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

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

Docker начинался как проект dotCloud, компании, которая предлагала услуги хостинга приложений «Платформа как услуга» (PaaS). Платформа Docker с открытым исходным кодом была выпущена в начале 2013 года, и вскоре после этого была создана компания Docker, Inc. С тех пор платформа Docker прошла через ряд дополнительных выпусков и в настоящее время находится на уровне версии 1.10.

Примечание:
По состоянию на 29 февраля 2016 г. dotCloud PaaS был закрыт из-за неплатежеспособности их материнской компании, и они рекомендовали подписчикам перенести свои приложения в Heroku, другую хостинговую компанию PaaS. Тот факт, что им пришлось сделать это после того, как они были в бизнесе всего несколько лет (и после того, как они породили очень популярную платформу Docker), должен служить еще одним предупреждением для предприятий о том, что компании облачных услуг (и даже облачные платформы, такие как Docker) могут подняться и падать быстро в этом быстро меняющемся мире, в котором мы сейчас живем! И как бы то ни было, Heroku была приобретена Salesforce в 2010 году.

Как работает Докер?

Чтобы понять, как работает Docker, мы начнем с базовой терминологии Docker:

  • Образ — коллекция изменений корневой файловой системы без сохранения состояния в виде многоуровневых файловых систем, наложенных одна на другую.
  • Контейнер — экземпляр образа во время выполнения, состоящий из образа, среды его выполнения и стандартного набора инструкций.
  • Dockerfile — текстовый файл, содержащий команды, которые необходимо выполнить для создания образа Docker.
  • Сборка — процесс создания образов Docker из файла Dockerfile и любых других файлов в каталоге, в котором создается образ.

Платформа Docker предоставляет разработчикам инструменты и услуги, которые они могут использовать для:

  • Создавайте образы и делитесь ими через центральный репозиторий образов
  • Совместная разработка контейнерных приложений с использованием контроля версий
  • Управление инфраструктурой для приложений в контейнерах Linux

Но Docker не ограничивается только контейнерами Linux; по мере его развития вы сможете использовать его для управления инфраструктурой для Hyper-V, Xen, KVM и других технологий виртуализации.

Набор инструментов докера

Docker Toolbox — это набор инструментов, предоставляемых платформой Docker, которые делают возможным создание, тестирование, развертывание и запуск контейнеров Docker. Эти инструменты включают в себя:

  • Docker Engine — легкая среда выполнения, используемая для создания и запуска контейнеров Docker. Docker Engine включает демона на хосте (службу Linux), с которым вы взаимодействуете, используя клиент Docker для создания, развертывания и запуска контейнеров.
  • Docker Compose — позволяет определить многоконтейнерное приложение вместе с любыми зависимостями, чтобы вы могли запускать его с помощью одной команды. Docker Compose позволяет указать образы, которые ваше приложение будет использовать вместе с любыми необходимыми томами или сетями.
  • Docker Machine — позволяет подготавливать хосты Docker, устанавливая Docker Engine на машину в вашем центре обработки данных или у облачного провайдера. Docker Machine также устанавливает и настраивает клиент Docker, чтобы он мог взаимодействовать с Docker Engine.
  • Клиент Docker. В Linux это командная оболочка, предварительно настроенная как среда командной строки Docker. Клиенты Docker также доступны для платформ Windows и Mac.
  • Kitematic — графический пользовательский интерфейс (GUI), который можно использовать для быстрого создания и запуска контейнеров Docker, а также для поиска и извлечения образов из Docker Hub.
  • Docker Registry — приложение с открытым исходным кодом, которое формирует основу для Docker Hub и Docker Trusted Registry.
  • Docker Swarm — встроенная возможность кластеризации, позволяющая объединить несколько Docker Engine в один виртуальный Docker Engine.

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

  • Докер для Linux
  • Докер для Windows
  • Докер в Mac OS X

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

Докер Решения

Однако программное обеспечение в Docker Toolbox — это еще не все, что может предложить платформа Docker. Следующие решения Docker также являются ключевыми элементами того, что делает Docker таким мощным инструментом для DevOps:

  • Docker Hub — облачный сервис, где вы можете зарегистрировать свои образы Docker и поделиться ими с другими.
  • Docker Trusted Registry — частный выделенный реестр образов, который позволяет хранить образы и управлять ими локально или в виртуальном частном облаке.
  • Универсальная плоскость управления — решение для управления Dockerized-приложениями, которое можно использовать для управления вашими приложениями независимо от того, работают ли они локально или в вашем виртуальном частном облаке.
  • Docker Cloud — облачная служба, в которой вы можете напрямую развертывать и управлять своими Dockerized (контейнерными) приложениями. Если вы новичок в Docker, это отличный способ быстро начать работу.
  • Docker Datacenter (DDC) — интегрированная комплексная платформа для развертывания контейнеров как услуг (CaaS) локально или в вашем виртуальном частном облаке. Возможности самообслуживания DDC упрощают разработчикам создание, тестирование, развертывание и управление гибкими приложениями. DDC является последним дополнением к стабильной версии Docker Solutions, и о его доступности было объявлено 23 февраля 2016 года.

Дополнительные сведения о продуктах и решениях Docker см. на странице https://www.docker.com.

Подробную документацию по любому инструменту, продукту или решению Docker см. на странице https://docs.docker.com.

Докер и АВС

Amazon Web Services (AWS) можно использовать для размещения программного обеспечения Docker для создания, запуска и управления Dockerized-приложениями. Дополнительные сведения о возможностях см. на https://aws.amazon.com/docker/, а также на https://www.docker.com/aws.

Докер и Майкрософт

Microsoft и Docker работают вместе, чтобы дать разработчикам возможность создавать, развертывать, запускать и управлять распределенными приложениями локально и в облаке на платформах Windows и Linux. Дополнительные сведения об их постоянном сотрудничестве в этих областях см. на странице https://www.docker.com/microsoft.

Вывод

В этой статье и в предыдущей мы рассмотрели концепцию контейнеров и то, как платформа Docker расширяет их возможности для DevOps. Следующие несколько статей этой серии будут посвящены контейнерам, поскольку они будут реализованы в следующей версии операционной системы Windows Server.

  • Docker и контейнеры (часть 4) — реализация контейнеров Windows Server
  • Докер и контейнеры (Часть 6)