Установка контейнера на Windows
Всю подробную информацию по развертыванию контейнеров можно найти на MSDN. Для установки нужен физический или виртуальный сервер Windows Server 2016. Windows Server 2016 поддерживает вложенную виртуализацию (Nested virtualization), но для таких контейнеров есть дополнительные требования (см.MSDN ). Как вариант можно использовать готовый образ в Azure – Windows Server 2016 Core with Containers.nnСреди компонентов сервера есть нужный компонент, процесс установки которого стандартен.n
PS> Install-WindowsFeature Containers
Или отмечаем соответствующий пункт в мастере добавления ролей и компонентов.nnnnНо в настоящее время необходимости в этом нет. Так как официально используется другой путь – при помощи компонентов Docker для установки поставщика которого используется модуль PowerShell. Поставщик обеспечит работу контейнеров на компьютере и установит Docker. Для работы Docker требуется обновление KB3176936. Поэтому перед началом работы лучше обновить ОС. Проще это сделать введя в консоли sconfig, затем выбрать пункт 6, и все обновления (нажать A и A). Ставим провайдер:n
PS> Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
nnПри помощи OneGet ставим последнюю версию Docker.n
PS> Install-Package -Name docker -ProviderName DockerMsftProvider
При этом автоматически установится и компонент Контейнер. После завершения потребуется перезагрузка.n
PS> Restart-Computer -Force
Файервол Windows блокирует порт 2375 на котором работает Docker. Открываем.n
PS> netsh advfirewall firewall add rule name="docker engine" ↵ndir=in action=allow protocol=TCP localport=2375
При запуске демон Docker может не подключиться к npipe://, перенастроим чтобы он использовал pipe и TCP порт.n
PS> Stop-Service dockernPS> dockerd --unregister-servicenPS> dockerd -H npipe:// -H 0.0.0.0:2375 --register-servicenPS> Start-Service docker
Проверяем:n
PS> docker version
Теперь можем работать как с Docker, только в Windows. Смотрим готовые образы в репозитарии Docker.nnn
PS> docker search microsoft
Получаем (необязательное действие) и запускае(смм нужный:n
PS> docker pull microsoft/windowsservercorenPS> docker run -it --name demo microsoft/iis powershell
Получаем в результате доступ к командной строке PowerShell (вариант использование cmd вместо powershell). Если нужен контейнер Hyper-V то добавляем параметр —isolation=hyperv. Перенаправление портов работает также как и в Docker -p 80:80. Выполняем все настройки, выходим и сохраняем результат в образ.n
PS C:\> exitnPS> docker commit demo demo-1
Использовав docker push, можем отправить новый образ в облако Docker. Команда «docker ps -a» покажет все запущенные контейнеры. Установленные в локальной системе образы выводятся при помощи команды.n
PS> docker images
Возможность запускать приложения в безопасной изолированной среде, без увеличения нагрузки на ОС несомненно большой плюс новой версии Windows Server 2016. Поэтому новая фича будет востребована при развертывании и масштабировании сервисов и среди разработчиков. Остается дождаться окончательного релиза.n
Услуги DevOps администратора, установка и настройка docker, поддержка, подробнее [email protected]