Vorig jaar publiceerden we een artikel over de compatibiliteit tussen Ikoula en Docker.
Gericht op de toekomst met nieuwe technologieën, heeft het Ikoula dev-team getest met Docker en Windows Server 2016 Technical Preview 5.
We gaan hier beschrijven hoe u een Windows Server 2016 TP5 virtuele machine kunt inzetten met Docker en natuurlijk het gebruik ervan.

I. VM Setup
Deze tests worden uitgevoerd op een 2e generatie VM, 4GB RAM, 4Vcpu met toegang tot internet.
VM installatie is eenvoudig, we kiezen ervoor om Windows Server 2016 standaard TP5 CORE systeem te installeren:

Zodra de installatie klaar is, regelen we RDP toegang :
Log in op de server en typ "start sconfig" :

Vanaf hier gaan we verder.
II. Docker installatie en de vereisten
We beginnen met het installeren van de 'containers' functie met de opdracht install " install- windowsfeature containers " :

Reboot de VM.
Wij installeren de OS images die we later nodig zullen hebben: (Nano Server en Windows Server Core)
Install-PackageProviderContainerImage -Force
Install-ContainerImage-Name WindowsServerCore
Install-ContainerImage-Name NanoServer
Vervolgens downloaden en uitvoeren van het Docker service script :
Invoke-WebRequest https://aka.ms/tp5/Update-Container-Host -OutFile update-containerhost.ps1
.\update-containerhost.ps1

Docker is geïnstalleerd en klaar voor gebruik :

III. Docker gebruik
We kunnen nu een container op basis van één van de voorgaande OS image creëren :
docker run --name Test01 -it windowsservercore:10.0.14300.1000 cmd
Met deze opdracht zal er een nieuwe container met de naam test01 aangemaakt worden.Hierna wordt u wordt automatisch verbonden met een command line interface (CLI) op die container.
Vanuit deze CLI kunnen we bijvoorbeeld webserver IIS installeren :

Nu maken we een image van deze container :
docker commit Test01 windowsservercoreweb

We kunnen deze image met IIS vanaf nu gaan inzetten :

Als je nu met een browser naar het ipadres van de vm gaat zal je een standaard IIS pagina zien.
IV. Wat nu (case study)
We gaan nu bedenken wat we willen maken en beheren, we willen in staat zijn om alles te beheren en wijzigen maken zonder extra setup. Kortom containers moeten dat werk te doen.
De website wordt opgeslagen in een lokale mapp , in ons geval:
C:\users\administrator\Documents\siteX (X is een nummer)
We beginnen met het creëren van twee mappen (vergeet niet om gebruikersrechten ingesteld) elke map bevat een html testpagina om te kunnen zie of de configuratie werkt :

Aan de Docker kant, maken we een andere image gebaseerd op de webserver met IIS geconfigureerd. Start de eerder gemaakte container en voer volgende PowerShell-opdracht uit :
Import-Module WebAdministration
Set-ItemProperty 'IIS:\Sites\Default Web Site' -name physicalpath -value c:\site01
Maak een nieuwe image met naam "windowssservercorewebmod"Daarna beginnen we twee containers en maken een forward naar poort 81 en 82 van de hosts van beide containers. We koppelen ook de IIS mappen met website inhoud welke we eerder hebben gemaakt.

docker run --name ikoula-web01 -p 81:80 -v C:\Users\Administrator\Documents\site1\:C:\site01 -dit windowsservercorewebmod

docker run --name ikoula-web02 -p 82:80 -v C:\Users\Administrator\Documents\site2\:C:\site01 -dit windowsservercorewebmod
Wij gebruiken argument -dit aan het einde van de opdracht om de containers te maken maar niet te mounten.Als we naar de website gaan zien we iedere container :

Tags: