Entre la Technical Preview 5 de Windows Server et les versions précédentes, un certain nombre de changements ont eu lieu, notamment au niveau de la gestion des conteneurs Windows & Hyper-V. C’est donc l’occasion de remettre au goût du  jour un petit guide en mode pas à pas pour démarrer avec les conteneurs Docker sous Windows Server 2016.

Base de départ : un Windows Server 2016 TP5 ou ultérieur installé et opérationnel. Hyper-V installé n’est pas obligatoire mais néanmoins nécessaire pour tester les conteneurs Hyper-V. Sans Hyper-V, seuls les conteneurs Windows Server sont testables.

Etape 1 — Installation des fonctionnalités de gestion de conteneurs Windows / Hyper-V
Install-WindowsFeature containers
Install-PackageProvider ContainerImage -Force
Find-ContainerImage
Install-ContainerImage -Name NanoServer
Install-ContainerImage -Name WindowsServerCore

Informations complémentaires sur la gestion des images d’OS Windows pour les conteneurs : https://msdn.microsoft.com/en-us/virtualization/windowscontainers/management/manage_images

Etape 2 — Installation de Docker
Invoke-WebRequest https://aka.ms/tp5/Update-Container-Host -OutFile update-containerhost.ps1
.\update-containerhost.ps1
Docker images

Etape 3 — Tagguer les images
docker run -it windowsservercore cmd   –> msg erreur, c’est normal, il faut tagguer l’image en lastest
docker tag <image id> windowsservercore:latest
docker tag <image id> nanoserver:latest

Etape 4 — Créer une nouvelle image
Docker run -it windowsservercore cmd
[faire les modifs dans le conteneurs Windows]
docker commit <image id> windowsserverstan
docker images

Etape 5 — Supprimer une image Docker sur Windows Server
docker rmi windowserverstan

Etape 6 — Rechercher dans le Docker Hub des images Windows
docker search :windowsservercore
docker search :nanoserver
docker search *

docker pull microsoft/aspnet
docker images

— Informations complémentaires – Réseau et conteneurs
Source : https://msdn.microsoft.com/en-us/virtualization/windowscontainers/management/container_networking
Par défaut : configuration NAT

Fichier de config  Notepad c:\programdata\docker\runDockerDaemon.cmd.
docker network ls
Get-ContainerNetwork |fl    ==>  équivalent plus riche en PowerShell

docker network inspect nat

— Port Mapping — Cet exemple créé un mapping statique entre le port 8082 du host container et le port 80 du conteneur.
docker run -it –name=DemoNat -p 8082:80 windowsservercore cmd

Note : en TP5, un seul réseau NAT est possible. En TP5, une règle globale de pare-feu est automatiquement créée pour tous les mapping de ports statiques

docker network create -d nat MyNatNetwork   ==> valable build post TP5
docker run -it –net=MyNatNetwork windowsservercore cmd
docker run -it –net=MyNatNetwork –ip=10.80.120.40 windowsservercore cmd

Get-ContainerNetworkAdapter -ContainerName “happy_swanson”

PowerShell For Docker : http://aka.ms/windowscontainers/powershell

En espérant que ce guide rapide vous aidera à bien démarrer sur Docker et les conteneurs Windows Server 2016.

Stanislas Quastana

Leave a Reply