Начало работы. Запуск первого контейнера WindowsGet started: Run your first Windows container

В этой статье объясняется, как запустить первый контейнер Windows после настройки среды, описанной в статье Начало работы. Подготовка Windows для контейнеров.This topic describes how to run your first Windows container, after setting up your environment as described in Get started: Prep Windows for containers. Чтобы запустить контейнер, сначала нужно установить базовый образ, который обеспечивает основу для контейнера в виде служб операционной системы.To run a container, you first install a base image, which provides a foundational layer of operating system services to your container. Затем создается и запускается образ контейнера, который основан на базовом образе.Then you create and run a container image, which is based upon the base image. Дополнительные сведения см. далее в этой статье.For details, read on.

Установка базового образа контейнераInstall a container base image

Все контейнеры создаются из образов контейнеров.All containers are created from container images. Корпорация Майкрософт предоставляет для начала работы несколько образов, называемых базовыми образами (дополнительные сведения см. в статье о базовых образах контейнеров).Microsoft offers several starter images, called base images, to choose from (for more details, see Container base images). Эти процедуры позволяют получить (скачать и установить) базовый образ Nano Server.This procedures pulls (downloads and installs) the lightweight Nano Server base image.

  1. Откройте окно командной строки (например, встроенную командную строку, PowerShell или терминал Windows), а затем выполните следующую команду, чтобы скачать и установить базовый образ:Open a command prompt window (such as the built-in command prompt, PowerShell, or Windows Terminal), and then run the following command to download and install the base image:

    docker pull mcr.microsoft.com/windows/nanoserver:1903
    

    Совет

    Если вы увидите сообщение об ошибке с текстом no matching manifest for unknown in the manifest list entries, убедитесь, что в Docker не настроен запуск контейнеров Linux.If you see an error message that says no matching manifest for unknown in the manifest list entries, make sure Docker isn't configured to run Linux containers.

  2. Когда завершится скачивание образа (во время ожидания изучите лицензионное соглашение), проверьте его наличие в локальной системе, опросив локальный репозиторий образов docker.After the image is finished downloading—read the EULA while you wait—verify its existence on your system by querying your local docker image repository. С помощью команды docker images выводится список установленных образов.Running the command docker images returns a list of installed images.

    Ниже приведен пример выходных данных с одним образом Nano Server.Here's an example of the output showing the Nano Server image.

    REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
    microsoft/nanoserver   latest              105d76d0f40e        4 days ago          652 MB
    

Выполнение контейнера WindowsRun a Windows container

В этом простом примере будет создан и развернут образ контейнера "Hello World".For this simple example, a ‘Hello World’ container image will be created and deployed. Для вашего удобства лучше выполнять эти команды в окне командной строки с повышенными привилегиями. Не используйте интегрированную среду сценариев Windows PowerShell, так как она не работает для интерактивных сеансов с контейнерами и в результате контейнеры перестают отвечать на запросы.For the best experience, run these commands in an elevated command prompt window (but don't use the Windows PowerShell ISE—it doesn't work for interactive sessions with containers, as the containers appear to hang).

  1. Запустите контейнер с интерактивным сеансом из образа nanoserver. Для этого введите следующую команду в окне командной строки:Start a container with an interactive session from the nanoserver image by entering the following command in your command prompt window:

    docker run -it mcr.microsoft.com/windows/nanoserver:1903 cmd.exe
    
  2. После запуска контейнера окно командной строки переходит в контекст контейнера.After the container is started, the command prompt window changes context to the container. Внутри контейнера мы создадим простой текстовый файл "Hello World", а затем выйдем из контейнера с помощью следующих команд:Inside the container, we'll create a simple ‘Hello World’ text file and then exit the container by entering the following commands:

    echo "Hello World!" > Hello.txt
    exit
    
  3. Получите идентификатор контейнера, из которого вы только что вышли, выполнив команду docker ps:Get the container ID for the container you just exited by running the docker ps command:

    docker ps -a
    
  4. Создайте новый образ HelloWorld с учетом тех изменений, которые внесли в первом запущенном контейнере.Create a new ‘HelloWorld’ image that includes the changes in the first container you ran. Для этого выполните команду docker commit, заменив <containerid> идентификатором реального контейнера:To do so, run the docker commit command, replacing <containerid> with the ID of your container:

    docker commit <containerid> helloworld
    

    После завершения вы получите пользовательский образ, содержащий скрипт "Привет мир".When completed, you now have a custom image that contains the hello world script. Это можно проверить с помощью команды docker images.This can be seen with the docker images command.

    docker images
    

    Ниже приведен пример выходных данных.Here's an example of the output:

    REPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE
    helloworld                             latest              a1064f2ec798        10 seconds ago      258MB
    mcr.microsoft.com/windows/nanoserver   1903                2b9c381d0911        3 weeks ago         256MB
    
  5. Наконец, запустите новый контейнер с помощью команды docker run с параметром --rm, который позволяет автоматически удалить контейнер по завершении работы командной оболочки (cmd.exe).Finally, run the new container by using the docker run command with the --rm parameter that automatically removes the container once the command line (cmd.exe) stops.

    docker run --rm helloworld cmd.exe /s /c type Hello.txt
    

    В результате Docker создает контейнер на основе образа HelloWorld. В этом контейнере Docker запускает экземпляр командной строки cmd.exe, которая считывает указанный файл и выводит его содержимое в оболочку.The result is that Docker created a container from the 'HelloWorld' image, Docker started an instance of cmd.exe in the container, and the cmd.exe read our file and output the contents to the shell. В конце Docker приостанавливает работу контейнера и удаляет его.As the final step, Docker stopped and removed the container.

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