Начало работы. Запуск первого контейнера Windows

Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2016

В этой статье объясняется, как запустить первый контейнер Windows после настройки среды, описанной в статье Начало работы. Подготовка Windows для контейнеров. Чтобы запустить контейнер, сначала скачайте (в контейнерах, которые также называются операцией извлечения) базовый образ, который предоставляет базовый уровень служб операционной системы для контейнера. Затем создается и запускается образ контейнера, который основан на базовом образе. Дополнительные сведения см. далее в этой статье.

Извлечение базового образа контейнера

Все контейнеры создаются из образов контейнеров. Корпорация Майкрософт предоставляет для начала работы несколько образов, называемых базовыми образами (дополнительные сведения см. в статье о базовых образах контейнеров). Эти процедуры позволяют получить (скачать и установить) базовый образ Nano Server.

  1. Откройте окно командной строки (например, встроенную командную строку, 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.

  2. Когда завершится скачивание образа (во время ожидания изучите лицензионное соглашение), проверьте его наличие в локальной системе, опросив локальный репозиторий образов 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, так как она не работает для интерактивных сеансов с контейнерами и в результате контейнеры перестают отвечать на запросы.

  1. Запустите контейнер с интерактивным сеансом из образа nanoserver. Для этого введите следующую команду в окне командной строки:

    docker run -it mcr.microsoft.com/windows/nanoserver:ltsc2022 cmd.exe
    
  2. После запуска контейнера окно командной строки переходит в контекст контейнера. Внутри контейнера мы создадим простой текстовый файл "Hello World", а затем выйдем из контейнера с помощью следующих команд:

    echo "Hello World!" > Hello.txt
    exit
    
  3. Получите идентификатор контейнера, из которого вы только что вышли, выполнив команду docker ps:

    docker ps -a
    
  4. Создайте новый образ 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
    
  5. Наконец, запустите новый контейнер с помощью команды 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 см. в документации.

Завершив настройку контейнера, щелкните Запустить. Состояние выполняющихся контейнеров можно просмотреть на вкладке Контейнеры:

Вкладка

Дальнейшие действия