В нашем справочнике есть мануал по установке Docker на сервере, работающем под управлением Ubuntu 20.04. Настоящая же статья посвящена тому, как запустить хранилище Docker на операционной системе Windows Server 2019.
На виртуальном сервере, работающем под управлением Windows Server 2019, производить установку Docker наиболее оптимально при помощи интегрированной среды PowerShell. Запустить PowerShell можно из командной строки, используя команду powershell
, либо из оболочки Server Manager – Tools
→ Windows PowerShell
.
Установка Docker
Первым шагом необходимо будет установить функцию контейнеров. Сделать это можно при помощи следующей команды:
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
Далее нужно установить сам Docker, для чего используйте следующую инструкцию:
Install-Package -Name docker -ProviderName DockerMsftProvider
Во время инсталляции система попросит вашего согласия на установку пакета. Для продолжения установки нужно нажать Y
.

Следующей командой необходимо перезагрузить сервер по окончании установки Docker:
Restart-Computer -Force
Проверить версию установленного пакета можно при помощи команды:
Get-Package -Name Docker -ProviderName DockerMsftProvider

Для этого также можно использовать следующую команду:
docker version

Теперь необходимо запустить Docker:
Start-Service Docker
Запуск контейнера
После чего уже можно будет загрузить и установить базовый образ контейнера. Например, следующей командой вы сможете произвести загрузку базового образа Nano Server для Windows Server 2019:
docker pull mcr.microsoft.com/windows/nanoserver:ltsc2019

Список установленных образов можно вывести при помощи команды:
docker images

Теперь можно приступить к созданию образа. Команды, при помощи которых создаются и запускаются образы, лучше выполнять в командной строке, запущенной от имени администратора. Использование интегрированной среды Windows PowerShell не позволяет работать с контейнерами, так как контейнеры в конечном итоге перестают отвечать на запросы.
Запуск загруженного контейнера Nano Server с интерактивным сеансом производится следующей командой:
docker run -it mcr.microsoft.com/windows/nanoserver:ltsc2019 cmd.exe
В качестве примера на диске C:\
запущенного контейнера создайте каталог TEMP
:
mkdir C:\TEMP
Перейдите в созданный каталог и создайте файл my_file.txt
, содержащий текст My File
:
cd C:\TEMP
echo "My File" > my_file.txt
После чего выйдите из контейнера:
exit
Следующая команда нужна будет для получения идентификатора контейнера, из которого вы только что вышли:
docker ps -a

В нашем примере идентификатор контейнера выглядит как 722200a246df
. Исходя из этого вы можете создать новый образ, в котором будут учитываться изменения, внесённые в изначальный образ. Для этого нужно будет использовать команду docker commit
. Новый образ мы назовём my_container
, поэтому команда для его создания будет выглядеть следующим образом:
docker commit 722200a246df my_container
При помощи команды docker images
можно вывести список образов, в котором будет присутствовать новый образ:

Теперь вы можете запустить созданный контейнер при помощи команды docker run
. Использование параметра --rm
позволяет удалить запущенный контейнер после завершения работы оболочки командной строки. В нашем примере мы запустим контейнер my_container
и выведем содержимое файла my_file.txt
из директории TEMP
на диске C:\
.
docker run --rm my_container cmd.exe /s /c type C:\TEMP\my_file.txt

В итоге Docker создаст контейнер из образа my_container
, запустит экземпляр командной строки, в которой выведет содержимое файла C:\TEMP\my_file.txt
, после чего Docker остановит работу контейнера и удалит его.