Начало работы. Запуск первого контейнера Windows
Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2016
В этой статье объясняется, как запустить первый контейнер Windows после настройки среды, описанной в статье Начало работы. Подготовка Windows для контейнеров. Чтобы запустить контейнер, сначала скачайте (в контейнерах, которые также называются операцией извлечения) базовый образ, который предоставляет базовый уровень служб операционной системы для контейнера. Затем создается и запускается образ контейнера, который основан на базовом образе. Дополнительные сведения см. далее в этой статье.
Извлечение базового образа контейнера
Все контейнеры создаются из образов контейнеров. Корпорация Майкрософт предоставляет для начала работы несколько образов, называемых базовыми образами (дополнительные сведения см. в статье о базовых образах контейнеров). Эти процедуры позволяют получить (скачать и установить) базовый образ Nano Server.
Откройте окно командной строки (например, встроенную командную строку, PowerShell или терминал Windows), а затем выполните следующую команду, чтобы скачать и установить базовый образ:
docker pull mcr.microsoft.com/windows/nanoserver:ltsc2022
Если Docker не удается запуститься при попытке извлечь образ, управляющая программа Docker может быть недоступна. Чтобы устранить данную неполадку, попытайтесь перезапустить службу Docker.
Совет
Если вы увидите сообщение об ошибке с текстом
no matching manifest for linux/amd64 in the manifest list entries
, убедитесь, что в Docker не настроен запуск контейнеров Linux. Чтобы переключиться на контейнеры Windows в Docker, щелкните значок Docker правой кнопкой мыши и выберите Переключиться на контейнеры Windows. Чтобы использовать командную строку для переключения между контейнерами, выполните команду& $Env:ProgramFiles\Docker\Docker\DockerCli.exe -SwitchDaemon
.Когда завершится скачивание образа (во время ожидания изучите лицензионное соглашение), проверьте его наличие в локальной системе, опросив локальный репозиторий образов docker. С помощью команды
docker images
выводится список установленных образов.Ниже приведен пример выходных данных с одним образом Nano Server.
REPOSITORY TAG IMAGE ID CREATED SIZE microsoft/nanoserver latest 105d76d0f40e 4 days ago 652 MB
Выполнение контейнера Windows
В этом простом примере будет создан и развернут образ контейнера "Hello World". Для вашего удобства лучше выполнять эти команды в окне командной строки с повышенными привилегиями. Не используйте интегрированную среду сценариев Windows PowerShell, так как она не работает для интерактивных сеансов с контейнерами и в результате контейнеры перестают отвечать на запросы.
Запустите контейнер с интерактивным сеансом из образа
nanoserver
. Для этого введите следующую команду в окне командной строки:docker run -it mcr.microsoft.com/windows/nanoserver:ltsc2022 cmd.exe
После запуска контейнера окно командной строки переходит в контекст контейнера. Внутри контейнера мы создадим простой текстовый файл "Hello World", а затем выйдем из контейнера с помощью следующих команд:
echo "Hello World!" > Hello.txt exit
Получите идентификатор контейнера, из которого вы только что вышли, выполнив команду docker ps:
docker ps -a
Создайте новый образ HelloWorld с учетом тех изменений, которые внесли в первом запущенном контейнере. Для этого выполните команду docker commit, заменив
<containerid>
идентификатором реального контейнера:docker commit <containerid> helloworld
После завершения вы получите пользовательский образ, содержащий скрипт "Привет мир". Это можно проверить с помощью команды docker images.
docker images
Ниже приведен пример выходных данных.
REPOSITORY TAG IMAGE ID CREATED SIZE helloworld latest a1064f2ec798 10 seconds ago 258MB mcr.microsoft.com/windows/nanoserver 2022 2b9c381d0911 3 weeks ago 256MB
Наконец, запустите новый контейнер с помощью команды docker run с параметром
--rm
, который позволяет автоматически удалить контейнер по завершении работы командной оболочки (cmd.exe).docker run --rm helloworld cmd.exe /s /c type Hello.txt
В результате Docker создает контейнер на основе образа HelloWorld. В этом контейнере Docker запускает экземпляр командной строки cmd.exe, которая считывает указанный файл и выводит его содержимое в оболочку. В конце Docker приостанавливает работу контейнера и удаляет его.
Запуск контейнера Windows с помощью Windows Admin Center
Вы можете использовать Windows Admin Center для локального запуска контейнеров. А именно, вы можете использовать расширение "Контейнеры" своего экземпляра Windows Admin Center для запуска контейнеров. Сначала откройте узел контейнеров, которым требуется управлять, а затем в области "Сервис" выберите расширение Контейнеры. Затем откройте вкладку Образы в расширении "Контейнеры" в разделе Узел контейнеров.
Если базовый образ контейнера отсутствует для узла, выберите вариант Извлечь, чтобы открыть параметры Извлечение образа контейнера:
В разделе Извлечение образа контейнера укажите URL-адрес и тег образа. Если вы не уверены, какой образ нужно извлечь, ознакомьтесь со списком популярных образов от Майкрософт, предоставляемых в Windows Admin Center. Вы также можете указать учетные данные для извлечения образа из частного репозитория. Внеся необходимые сведения, щелкните Извлечь. Windows Admin Center запустит процесс извлечения на узле контейнеров. После завершения скачивания вы увидите новый образ на вкладке Образы.
Выберите образ для запуска и щелкните Запустить.
В меню Запуск настройте конфигурацию для контейнера, например имя контейнера, тип изоляции, порты для публикации, а также выделение памяти и ЦП. Кроме того, вы можете добавить команды запуска Docker, которые недоступны в пользовательском интерфейсе, такие как -v для постоянного тома. Дополнительные сведения о доступных параметрах запуска Docker см. в документации.
Завершив настройку контейнера, щелкните Запустить. Состояние выполняющихся контейнеров можно просмотреть на вкладке Контейнеры: