Что такое контейнер?
Контейнер — это изолированная среда, в которой может работать приложение.
Контейнер, приложение и все его зависимости строятся из элементов и ресурсов хоста, таких как операционная система ядра, ЦП и память, а затем логически отделяются от других контейнеров и от самого хоста.
На схеме ниже показано, как красный и желтый контейнер сосуществуют на одном хосте с использованием того же оборудования и операционной системы ядра, но содержатся в отдельном пространстве, что позволяет им запускать приложения без внешних помех.
Обратите внимание, как одно и то же оборудование и операционная система, установленные на этом оборудовании, могут запускать собственные приложения и службы независимо от того, что происходит в каждом контейнере.
Создание и запуск контейнеров в Windows Server
Контейнеры могут выполняться на различных платформах, таких как операционные системы Linux, Windows и Mac. Однако эта статья/демонстрация посвящена работе контейнеров в Windows Server.
Существует несколько способов работы с контейнерами Windows, включая Windows Admin Center (WAC) или Visual Studio. Однако в этой статье/демонстрации используется Docker.
Docker — это продукт «платформа как услуга», который можно использовать для объединения приложения, всех его зависимостей и информации о конфигурации в единый пакет, называемый контейнером. Затем окно настройки можно использовать для отправки, запуска или удаления этого контейнера.
Последующие действия были выполнены на новой установке Windows Server 2022.
Список необходимых условий для запуска контейнеров в Windows Server можно найти по внешней ссылке ниже:
Начало работы. Подготовка Windows для контейнеров
Действия по созданию и запуску контейнеров на Windows Server с помощью Docker можно обобщить следующим образом:
1. Установка Docker
В PowerShell (запустите от имени администратора) введите:
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
В ответ на запрос введите «
Y» для подтверждения установки NuGet.
В том же сеансе PowerShell введите:
Install-Package -Name docker -ProviderName DockerMsftProvider
В ответ на запрос введите «
Y», чтобы доверять пакету.
В том же сеансе PowerShell введите:
Restart-Computer
2. Создание файла Docker и скачайте образ контейнера
В сеансе PowerShell с повышенными правами переключитесь в корневой каталог и создайте новую папку, введя следующую команду:
cd\
mkdir Containers
cd Containers
В том же сеансе PowerShell создайте файл Docker и отредактируйте его, введя:
New-Item dockerfile
(Обратите внимание, что расширение файла отсутствует)
notepad dockerfile
В текстовом редакторе Блокнот введите следующие 3 строки, а затем сохраните и закройте файл Docker:
FROM mcr.microsoft.com/windows/servercore/iis
RUN powershell
COPY index.html C:/inetpub/wwwroot
Вернитесь в PowerShell, по-прежнему в C:\Containers задайте контекст, создайте файл html и отредактируйте его, введя следующую информацию:
New-Item index.html
notepad index.html
В текстовом редакторе Блокнот, введите следующие три строки, а затем сохраните и закройте файл index.html:
<h1>Hello World!</h1>
<p>This is an example of a simple HTML page hosted on:</p>
<h2>container #1</h2>
3. Сборка и запуск контейнера.
Снова в PowerShell, по-прежнему в C:\Containers, введите:
docker build -t webserver.
Дождитесь скачивания образа из реестра контейнеров Microsoft, затем введите:
docker images
Теперь должен отображаться скачанный образ.
Чтобы запустить контейнер с помощью скачанного шаблона образа, снова в PowerShell введите:
docker run --name container1 -d -p 80:80 webserver
Эта последняя строка создает и запускает контейнер с именем контейнер1 на основе подготовленного образа веб-сервера. Параметр -d дает Windows команду запустить контейнер в фоновом режиме, а параметр -p дает Windows команду перенаправить порт 80 (HTTP) хоста на порт 80 контейнера.
Чтобы протестировать контейнер, выполните следующие действия.
Откройте браузер на хосте и перейдите к localhost (можно также использовать другой компьютер в том же сегменте сети и перейти к IP-адресу хоста контейнера или имени компьютера).
Необходимо нажать на образец веб-страницы HTML, созданный ранее:
На этом завершается руководство по запуску контейнеров Docker в Windows Server 2022.