Как развернуть Windows Nano Server в контейнерах Docker

Опубликовано: 15 Апреля, 2023
Как развернуть Windows Nano Server в контейнерах Docker

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

Прежде чем мы обсудим это, вам нужно знать, что Microsoft внесла значительные изменения в Nano Server за эти годы. Инструкции, которые я привожу в этой статье, относятся только к Windows Server 2019 и более поздним версиям. Давайте начнем с получения предварительных условий!

Установите необходимые компоненты

Nano Server предназначен для использования исключительно в качестве роли контейнера. Таким образом, вам необходимо настроить Windows Server для запуска Docker до запуска информационных служб Интернета (IIS) на основе Nano Server. Для этого выполните следующие действия:

  1. Установите функцию Hyper-V. Для этого откройте сеанс PowerShell с повышенными правами и введите:

  1. Установите функцию контейнера после перезагрузки сервера. Введите эту команду в окно PowerShell с повышенными привилегиями:

  1. Откройте сеанс PowerShell с повышенными привилегиями после завершения перезагрузки. Установите модуль Docker Microsoft Package Management Provider с помощью этой команды:

  1. Установите Docker, введя эту команду:

Изображение 14096
  1. Запустите службу Docker, введя следующую команду:

  1. Убедитесь, что Docker работает, введя эту команду:

Изображение 4086

Теперь давайте возьмем пакет Nano Server!

Приобретение пакета Nano Server

Теперь, когда Docker запущен и работает, следующим шагом будет поиск пакета Nano Server, совместимого с вашей системой.

  1. Откройте сеанс PowerShell с повышенными правами и введите следующую команду:

  1. Найдите образ Nano Server, который соответствует вашим потребностям. Я буду использовать образ
Изображение 14098
  1. Затем потяните образ Docker. Взглянув на рисунок выше, вы заметите, что в списке нет ни слова «Nano Server». Однако самая первая запись в списке — это . NanoServer — это имя базового образа. Вы можете получить этот базовый образ, введя следующую команду:

Изображение 4039

Несмотря на то, что команда, показанная выше, не супер-интуитивна, ее безумие методично. «Mcr.microsoft.com» — это имя реестра контейнеров Microsoft. Базовый образ Nano Server находится в пути Windows.

Значение «:1809», которое появляется в конце вытягивания докера, важно. 1809 — это версия Windows Server 2019, которую я использую на своем хосте Docker. Добавление 1809 к docker pull указывает Windows загрузить образ, основанный на версии Windows 1809. Без этого вы, скорее всего, загрузите неправильную версию и не сможете создавать контейнеры из образа.

Запуск Нано сервера

Теперь, когда вы извлекли образ Nano Server, содержащий IIS, осталось только запустить контейнер на основе образа. Для этого вам нужно знать точное название изображения.

  1. Получите имя изображения, введя эту команду:

Изображение 9606
  1. Запустите контейнер на основе образа. В этом случае команда:

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

Изображение 26

Последние мысли

Хотя создать контейнеры Nano Server несложно, необходимо загрузить правильную версию образа контейнера. Выполните шаги, описанные выше, чтобы убедиться, что вы создали контейнер Nano Server без каких-либо заминок.

У вас есть еще вопросы о контейнерах Nano Server? Проверить разделы часто задаваемых вопросов и ресурсов ниже.

Часто задаваемые вопросы

Почему команда версии Docker возвращает ошибку?

Если вы получаете сообщение об ошибке при вводе команды версии Docker, проверьте следующее. Во-первых, убедитесь, что служба Docker запущена с помощью команды Docker «Start-Service». Затем убедитесь, что вы использовали строчную букву «v» в версии слова. Docker чувствителен к регистру, и ввод слова версии с прописной буквой «V» приведет к ошибке.

Почему я получаю сообщение об ошибке о том, что требуется поставщик NuGet?

NuGet загружает и отслеживает обновления пакетов для разработчиков программного обеспечения, чтобы гарантировать использование правильных зависимостей при создании программных решений. Это также позволяет вам получать доступ к вашим собственным пакетам при удаленной работе. Вы должны установить NuGet, чтобы программы могли получить доступ к пакетам NuGet. Разработчики могут помогать другим, создавая собственные пакеты и позволяя другим разработчикам использовать их с NuGet.

Что произойдет, если вы попытаетесь запустить контейнер из образа на основе версии Windows, отличной от той, которая работает на хосте?

Если вы попытаетесь запустить контейнер из неправильной версии образа, например, используя базовый образ Windows Server 2016 на хосте Windows Server 2019, вы получите ответ об ошибке от демона. Сообщение об ошибке обычно содержит текст «операционная система контейнера не соответствует операционной системе хоста».

Что произойдет, если вы не укажете версию операционной системы в имени образа контейнера?

Версия операционной системы, указанная в конце экземпляра, рассматривается как тег. Если вы опустите тег, Windows будет использовать тег по умолчанию под названием «Последний». Тег Latest соответствует самой последней созданной версии этого конкретного образа. В большинстве случаев последний образ основан на Windows Server 2016.

Делает ли Microsoft что-нибудь, чтобы сделать проблему несоответствия версий контейнеров менее проблематичной?

Согласно Microsoft, вам не придется беспокоиться о проблеме несоответствия версий, если хост контейнера и образ контейнера работают под управлением Windows версии 1809 или выше, благодаря модульному подходу к кодированию. С этой целью имеет смысл проверить, работаете ли вы с более поздними версиями этих платформ.