Microsoft windows server 2016 base with containers что это

Развертывание узла контейнера: Windows Server Container host deployment: Windows Server

Чтобы развернуть узел контейнера Windows, нужно выполнить разные действия в зависимости от типа операционной системы виртуальной машины и операционной системы сервера виртуальных машин (виртуальная и физическая). Deploying a Windows container host has different steps depending on the operating system and the host system type (physical or virtual). Этот документ описывает развертывание узла контейнера Windows в Windows Server 2016 или Windows Server Core 2016 в физической или виртуальной системе. This document details deploying a Windows container host to either Windows Server 2016 or Windows Server Core 2016 on a physical or virtual system.

Установка Docker Install Docker

Docker необходим для работы с контейнерами Windows. Docker is required in order to work with Windows containers. Docker состоит из подсистемы Docker Engine и клиента Docker. Docker consists of the Docker Engine and the Docker client.

Для установки Docker будет использоваться модуль PowerShell поставщика OneGet. To install Docker, we’ll use the OneGet provider PowerShell module. Поставщик обеспечит работу контейнеров на компьютере и установит Docker. После этого потребуется перезагрузка. The provider will enable the containers feature on your machine and install Docker, which will require a reboot.

Откройте сеанс PowerShell с повышенными правами и выполните следующие командлеты. Open an elevated PowerShell session and run the following cmdlets.

Установите модуль OneGet PowerShell. Install the OneGet PowerShell module.

С помощью OneGet установите последнюю версию Docker. Use OneGet to install the latest version of Docker.

После завершения установки перезагрузите компьютер. When the installation is complete, reboot the computer.

Установка конкретной версии Docker Install a specific version of Docker

На данный момент для Docker EE для Windows Server доступно два канала: There are currently two channels available for Docker EE for Windows Server:

  • 17.06 — используйте эту версию, если вы используете Docker Enterprise Edition (Docker Engine, UCP, DTR). 17.06 — Use this version if you’re using Docker Enterprise Edition (Docker Engine, UCP, DTR). 17.06 используется по умолчанию. 17.06 is the default.
  • 18.03 — используйте эту версию, если вы используете только подсистему Docker EE Engine. 18.03 — Use this version if you’re running Docker EE Engine alone.

Чтобы установить конкретную версию, используйте флаг RequiredVersion . To install a specific version, use the RequiredVersion flag:

Для установки конкретных версий Docker EE может потребоваться обновление ранее установленных модулей DockerMsftProvider. Installing specific Docker EE versions may require an update to previously installed DockerMsftProvider modules. Чтобы его выполнить, воспользуйтесь следующей командой: To Update:

Обновление Docker Update Docker

Если необходимо обновить более раннюю версию канала подсистемы Docker EE Engine до более поздней, используйте флаги -Update и -RequiredVersion . If you need to update Docker EE Engine from an earlier channel to a later channel, use both the -Update and -RequiredVersion flags:

Установка базовых образов контейнеров Install base container images

Перед началом работы с контейнерами Windows необходимо установить базовый образ. Before working with Windows containers, a base image needs to be installed. Базовые образы доступны при использовании Windows Server Core и Nano Server в качестве операционной системы контейнера. Base images are available with either Windows Server Core or Nano Server as the container operating system. Подробные сведения об образах контейнеров Docker см. в разделе Создание собственных образов на сайте docker.com. For detailed information on Docker container images, see Build your own images on docker.com.

Читайте также:  What is secure shell in linux

Начиная с мая 2018 года, для обеспечения единообразных и надежных возможностей приобретения почти все образы контейнеров, полученные от Майкрософт, обслуживаются из Реестра контейнеров Майкрософт, mcr.microsoft.com. При этом текущий процесс обнаружения через Docker Hub остается неизменным. With effect from May 2018, delivering a consistent and trustworthy acquisition experience, almost all of the Microsoft-sourced container images are served from the Microsoft Container Registry, mcr.microsoft.com, while maintaining the current discovery process via Docker Hub.

Windows Server 2019 и более поздних версий Windows Server 2019 and newer

Чтобы установить базовый образ Windows Server Core, выполните следующую команду: To install the ‘Windows Server Core’ base image run the following:

Чтобы установить базовый образ Nano Server, выполните следующую команду: To install the ‘Nano Server’ base image run the following:

Windows Server 2016 (версии 1607–1803) Windows Server 2016 (versions 1607-1803)

Чтобы установить базовый образ Windows Server Core, выполните следующую команду: To install the Windows Server Core base image run the following:

Чтобы установить базовый образ Nano Server, выполните следующую команду: To install the Nano Server base image run the following:

Прочтите лицензионное соглашение для образов ОС контейнеров Windows на странице Лицензионное соглашение. Please read the Windows containers OS image EULA, which can be found here – EULA.

Узел с изоляцией Hyper-V Hyper-V isolation host

Для запуска изоляции Hyper-V необходима роль Hyper-V. You must have the Hyper-V role to run Hyper-V isolation. Если сам узел контейнера Windows является виртуальной машиной Hyper-V, перед установкой роли Hyper-V необходимо включить вложенную виртуализацию. If the Windows container host is itself a Hyper-V virtual machine, nested virtualization will need to be enabled before installing the Hyper-V role. Дополнительные сведения о вложенной виртуализации см. в статье Вложенная виртуализация. For more information on nested virtualization, see Nested Virtualization.

Вложенная виртуализация Nested virtualization

Приведенный ниже сценарий настраивает вложенную виртуализацию для узла контейнера. The following script will configure nested virtualization for the container host. Этот сценарий выполняется на родительском компьютере Hyper-V. This script is run on the parent Hyper-V machine. Перед запуском сценария убедитесь, что виртуальная машина узла контейнера отключена. Ensure that the container host virtual machine is turned off when running this script.

Включение роли Hyper-V Enable the Hyper-V role

Чтобы включить компонент Hyper-V с помощью PowerShell, выполните приведенный ниже командлет в сеансе PowerShell с повышенными правами. To enable the Hyper-V feature using PowerShell, run the following cmdlet in an elevated PowerShell session.

Контейнеры в Windows Server 2016

В эпоху развития облачных и мобильных технологий приложения задают ритм для инноваций. Контейнеры и связанная с ними экосистема позволяют создавать сервисы нового поколения. До недавнего времени контейнеры были вещью из мира Linux. Но с выходом Windows Server 2016 ситуация изменилась — технологии контейнеризации стремительно ворвались в мир Windows.

Согласно «Википедии», контейнеризация — это система виртуализации на уровне ОС, позволяющая создавать несколько изолированных экземпляров операционной системы на одном узле. Каждый контейнер, в отличие от виртуальной машины, имеет собственное пространство процессов и сетевой стек, но при этом все контейнеры в рамках хоста используют один и тот же экземпляр ядра операционной системы.

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

Читайте также:  Что будет если остановить скачивание обновлений windows

Контейнеры как технология существуют еще с 80-х годов, то есть они возникли еще до привычных нам виртуальных машин. В 2000-е появились первые коммерческие продукты для организации контейнеров на Linux и Unix (Virtuozzo, HP-UX Containers), а в 2008 году появилась нативная поддержка контейнеризации в ядре Linux (LXC).

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

Год назад компания Microsoft сделала первый серьёзный шаг в мир контейнеров, запустив Azure Container Service — облачный сервис контейнеризации на базе Docker Swarm и DC/OS (Apache Mesos). Этот сервис позволяет тысячам заказчиков по всему миру эффективно развёртывать масштабные решения с использованием контейнеров популярных форматов Docker и Mesos на базе ОС Linux.

Концепция контейнеров долгое время оставалась вещью из мира Linux (ну или Unix). Многие разработчики, пишущие на .NET или под SQL Server, кусали локти и завидовали своим коллегам по цеху из мира Linux, которые могли эффективно использовать контейнеры для целей Dev/Test, а потом так же быстро и эффективно переносить контейнеры в продуктивную среду. Windows Server 2016 меняет эту парадигму: теперь контейнеры доступны и для мира Windows, причём сразу в двух лицах — в виде контейнеров Windows Server и в виде контейнеров Hyper-V. Причём Windows Server для контейнеризации использует одну из самых популярных систем в индустрии — Docker.

Кстати, Microsoft идёт по пути скрещивания этих двух по сути параллельных продуктов — Azure Container Service и Windows Server Containers (и да, прошу их не путать). В данный момент идёт раннее тестирование Windows Server Containers в Azure Container Service, записаться можно вот здесь. Так что в будущем Azure Container Service сможет работать не только с контейнерами Linux, но и с контейнерами на базе Windows Server.

Типы контейнеров Windows

Контейнеры в Windows Server 2016 создаются из специальных шаблонов в формате Docker. Вы можете создавать свои шаблоны или воспользоваться богатым выбором из библиотеки Docker Hub. Подключение к контейнеру производится через командную строку, так как собственной графической оболочки контейнер не имеет. Контейнер не нужно патчить или обслуживать — вы просто создаёте новый шаблон контейнера и разворачиваете из него новые контейнеры вместо старого за секунды.

Контейнеры в Windows Server 2016 делятся на два типа:

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

Контейнеры Hyper-V — открывают более широкие возможности изоляции по сравнению с контейнерами Windows Server, так как каждый контейнер запускается в виртуальной машине со специальной легковесной версией ОС. В этой конфигурации каждый контейнер использует свою копию ядра, изолированную от других контейнеров, но при этом он обладает характеристиками обычного контейнера (быстрое развёртывание, использование библиотеки шаблонов Docker, stateless, мощные возможности по управлению).

Принципы работы контейнера Windows

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

Читайте также:  Киностудия лайф windows 10

При создании контейнеров Windows и последующей работе с ними пригодятся перечисленные ниже основные понятия.

Узел контейнера. Физический или виртуальный компьютер под управлением Windows Server 2016, настроенный для работы с контейнерами Windows. На хосте работают один или несколько контейнеров Windows.

Образ контейнера. По мере того как в файловую систему или реестр контейнера вносятся изменения (например, при установке программного обеспечения), они регистрируются в «песочнице». Во многих случаях может потребоваться зарегистрировать это состояние, чтобы применить внесенные изменения при создании новых контейнеров. В этом и заключается суть образа: после остановки работы контейнера можно либо отключить «песочницу», либо преобразовать ее в новый образ контейнера. Предположим, вы развернули контейнер в образе Windows Server Core. Затем вы устанавливаете в этот контейнер MySQL. Создание нового образа на базе этого контейнера будет происходить аналогично его развертыванию. Этот образ будет содержать только внесенные изменения (MySQL) и при этом работать в виде слоя поверх образа ОС контейнера.

«Песочница». После запуска контейнера все операции записи (изменения файловой системы и реестра либо установка программного обеспечения) регистрируются на уровне «песочницы».

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

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

Использование контейнеров Windows

Образ Docker можно создать где угодно, начиная с компьютера разработчика и заканчивая тестовыми и рабочими компьютерами. К тому же его развертывание в любой среде будет выполнено одинаково и за считанные секунды. Благодаря этому появилась развитая и расширяющаяся экосистема приложений, запакованных в контейнеры Docker. При этом в общедоступных репозиториях Docker Hub открытого реестра контейнерных приложений, который Docker обслуживает, в настоящее время опубликовано более 180 000 приложений.

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

Так как контейнер содержит все необходимое для запуска приложения, он отличается высокой переносимостью и может запускаться на любом компьютере под управлением Windows Server 2016. Можно создать и протестировать контейнер локально, а затем развернуть его образ на сервере поставщика услуг, а также в частном или общедоступном облаке компании. Адаптивность контейнеров позволяет использовать современные модели разработки приложений в крупномасштабных виртуализированных и облачных средах.

Контейнеры позволяют масштабировать веб-сервисы эффективнее, так как новые экземпляры стартуют в разы быстрее, чем виртуальные машины (плюс виртуальной машине, в отличие от контейнера, еще нужно время на provisioning).

Также контейнеры значительно менее требовательны к оперативной памяти, нежели виртуальные машины.

С помощью контейнеров разработчики могут создать приложение на любом языке. Такие полностью переносимые приложения можно запускать где угодно (на ноутбуке, настольном компьютере, сервере, в частном или публичном облаке) без необходимости изменения кода.

Если вам интересна тема контейнеров в Windows Server 2016, рекомендуем прочитать официальную документацию, статью Марка Руссиновича и посмотреть доклад по теме с конференции Microsoft Ignite.

Оцените статью