Nous allons voir
aujourd’hui les Windows containers au sein de Windows Server 2016,
cet article aura plusieurs parties, nous allons commencer déjà par les bases des
Windows containers, on verra ensuite leur mise en place avec un cas très concret
Les Windows
containers et Hyper-V containers proviennent des technologies de virtualisation
linux, propulsés également par Docker.
Par ailleurs Windows Server 2016 dispose du moteur et client docker en vue
du partenariat avec Microsoft.
Les Windows containers sont conçus pour le Cloud, ainsi qu’à la rapidité de
déploiement d’applications et de mise en service, ils offrent également une
isolation applicative. Il facilitent également l’intégration des applications.
Ps : Tout se fait en PowerShell, (la création, l’administration etc),
pas d’interface graphique pour le moment pour gérer les Windows Containers.
Schéma de fonctionnement:
Serveur physique :
Voici tout d’abord
une visualisation simple d’un serveur physique avec Windows Server 2016
installé dessus :
Hyperviseur (Hyper-V) :
Nous avons ici quelque
chose de classique qu’on connait depuis de nombreuses années maintenant, un
hyperviseur avec des quelques VMs dessus.
Windows Container :
Nous allons donc
rentrer dans le vif du sujet et vous présenter les Windows Containers, cette
représentation vous permettra de mieux les comprendre.
Nous avons un serveur physique, avec Hyper-V dessus, vous pouvez créer un ou plusieurs Windows containers directement au niveau de l’OS Windows
Server 2016, On peut également créer des Windows containers au niveau des VMs qui sont hébergés dans notre hyperviseur Hyper-V.
Hyper-V Containers :
Les Hyper-V
containers offrent une meilleure isolation que les Windows Containers, voici
comment ont peu les représenter :
Mise en place des Windows Containers
Nous allons voir
comment mettre en place les Windows Containers sur Windows Server 2016 TP de manière
très simple.
Commencer par l’installation
de la Feature « Container »
comme ceci :
Image Container :
Afin de déployer
les Windows containers, vous aurez besoin d’images containers, les Windows
containers se déploient à l’aide de ces images Containers. Ces images containers incluent bien entendu un Os, et peuvent également inclure des applications, des
services pré installés etc.
Nous avons deux
types d’images containers :
- Base OS Images : c’est une image livrée directement par Microsoft
- Container images : c’est une image crée comme modèle via l’image de base « Bas OS Images »
Pour commencer,
veuillez installer le package Provider comme ceci :
Install-PackageProvider ContainerProvider -Force
Une fois
terminée, vous devez donc télécharger les images « Base OS Images » containers, vous avez deux versions :
- Une image NanoServer
- Une image WindowsServerCore
Pour installer
les deux images, vous devez lancer la commande suivante :
Install-ContainerImage -Name NanoServer -Version 10.0.10586.0
Le paramètre « Version » est optionnel, si vous
ne le mettez pas, le serveur vous installera la dernière version de l’image container.
Faites la même
chose pour la version « WindowsServerCore » :
Pour cette
version, cela prendre environ 1h, en fonction de votre débit bien entendu J
Vous pouvez
également télécharger l’image Wim via ce lien : http://aka.ms/ContainerOSImage
Une fois téléchargée,
placez la dans un dossier C:\Images
par exemple, et installez là avec la commande suivante :
Install-ContainerOsImage -wimPath C:\images\CBaseOs_th2_release_10514.0.150808-1529_amd64fre_ServerDatacenterCore_en-us.wim
Une fois que vous
avez installé vos images containers, vous devez vérifier leur présence par la
commande suivante :
Get-ContainerImage
On voit bien nos deux images installées:
Avec l’installation de la feature « Container » nous avons avec un
module PowerShell qui apporte plusieurs commandes afin de vous aider à mettre
en place les Windows containers, pour obtenir toutes les commandes disponibles
pour le module « Containers » passer la commande suivante : Get-Commande -Module Containers
Et vous avez toutes la listes de commandes PowerShell
nécessaires pour les Windows Containers.
Création d’un Windows Container :
Nous allons voir
par une méthode simple la création de Windows containers, 3 Windows containers seront crées ici:
- Contain01
- Contain02
- Contain03
Voici comment je représente ces trois containers qu’on va créer ensemble selon
ma propre compréhension, ce qui permet de mieux les visualiser et de mieux comprendre ce nouveau concept de container
Nous allons
passer à la création de ces 3 container avec la commande Powershell suivante «
New-Container »
Explication de la commande de création:
-Name : le Nom du container
-ContainerImageName : vous l'aurez compris, on va chercher l’image
container qu’on a installée auparavant, nos containers sont basés sur cette
image.
-SwitchName : C’est le switch virtuel auquel le
container sera connecté afin d’avoir une connexion réseaux, ça fera l’objet d’un
article à part pour mieux vous expliquer les switches virtuels avec les Windows
Containers.
Vérification de
la création des 3 containers avec la commande suivante « Get-Container », les voici
présents ici :
Repository des containers
Une fois crés,
allons voir l’emplacement de ces Windows containers dans notre Host, pour cela,
tapez la commande suivante « Get-ContainerHost » :
Vous avez le nom de votre serveur, (bon
ici je ne l’ai pas renommé, ce n'est pas bien x) ) et vous avez également « ContainerImageRepositoryLocation » remontez d'un cran et allez dans le dossier "Container" qui est l'endroit de stockage des containers crées, allons faire un tour dans ce dossier :
Pour chaque
container vous allez avoir les fichiers et dossiers suivants :
- Un dossier nommé avec le GUID du container dans lequel vous allez trouver un dossier « Hives » et dans ce dossier, on trouve les registry du container en question
- Un disque virtuel VHDx
- Un fichier de configuration. VMCX
- Un VMRS qui correspond au Runtime du container
Nous allons nous
concentrer sur notre container « Contain01 », afin de trouver son
GUID, tapez la commande suivante : (Get-Container contain01).Id
Grâce au GUID obtenu pour le "Contain01" nous allons pouvoir l'identifier dans le repository des
containers, le voici en rouge avec les explications en bleu.
Dans le dossier, on va trouver le dossier « Hives » comme ceci :
Voici le contenu du dossier Hives :
Administration en PowerShell de votre Windows
Container
Avec PowerShell
direct, nous allons pouvoir administrer un Windows Container de manière très simple,
voici la commande qu’il faut passer afin de se connecter sur un des containers
qu’on a créés auparavant.
Enter-Pssession -ContainerName
Contain01 -RunAsAdministrator
Et voilà nous
sommes directement en PowerShell direct sur notre Windows Container « Contain01 » et on peut l’administrer
en PowerShell de manière classique, remarquez par exemple la commande passer « Ipconfig »
afin de savoir ses paramètre TCP/IP.
On peut par exemple installer IIS dessus comme
ceci :
Vérification : avec un get-WindowsFeature
Voilà, c’est terminé pour aujourd’hui, nous verrons
la prochaine fois l’administration des Containers au niveau mémoire, carte
réseaux etc
@bientôt
Seyfallah Tagrerout
Microsoft MVP