Docker – eine neue Welt?

Nachdem nun auch Dynamics in der Dockerwelt ankommt, habe ich mich die letzten Tage mit dem Thema Docker als Ablösung für Virtuelle Maschienen beschäftigt.

In diesem Beitrg möchte ich lediglich meine ersten Schritte aufzeigen.

 

Schritt 1 war hierbei die Installation von Docker.

if (-not (Test-IsAdmin))
{ 
  Write-Error "Skript erfordert Admin-Rechte!";
  return 
}
Set-Location ([io.path]::GetTempPath())
Invoke-WebRequest https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe -OutFile DockerInstaller.exe
Start-Process DockerInstaller.exe -wait | Write-Verbose
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V, Containers -All
Install-Module Docker -Force

Hierbei wird die Docker MSI in einen temprären Ordner heruntegeladen und gestgartet.

Im Anschluss installiere ich ich noch die beiden Windows-Features Hyper-V und Containers.

Beide sollten bereits durch die MSI installiert worden sein, aber sicher ist sicher.

Auch die Powershell-Module für Docker werden im Anschluss gleich mit installiert.

Ab jetzt ist es mir möglich über Request-ContainerImage aus Powershell heraus neue Container-Images abzurufen bzw. zu aktualisieren.

In meinen Augen hat Docker zwei Stufen.

Es gibt Container-Images, das sind vorgefertigte Templates.

Aus diesen Container-Images kann man nun Container erstellen, diese sind eine Kopie des Images und bekommen durch Docker bei der Anlage einen eindeutigen Namen.

 

Kommen wir nun zu Schritt 2, dem starten eines SQL-Containers.

Request-ContainerImage microsoft/mssql-server-windows-express

Über Powershell lade ich das Standard-Image für MSSQL herunter.

Und im Anschluss erzeuge ich mir einen neuen Container auf dieser Grundlage.

docker run --ip 172.22.10.1 -d -p 1433:1433 --env sa_password=123456 --env accept_eula=y microsoft/mssql-server-windows-express

Über –ip vergebe ich dem Container eine feste IP, mit -d lasse ich ihn im Hintergrund laufen.

Durch -p 1433:1433 wird der Port 1433 auf 1433 gemappt. (1433 ist der Standardport für MSSQL)

Mit Hilfe von –env vergbe ich noch ein Passwort (123456) für den sa-Benutzer und akzeptiere die EULA.

In der Ausgabe erhalte ich nun den eindeutigen Namen meines Containers.

Bei mir ist dies romantic_hermann.

Ab jetzt bin ich in der Lage mich z.B. über das SQL Server Managment Studio meines loaklen Rechners (Host) auf den SQL-Server innerhlab des Container zu verbinden.

Die IP-Adresse ist 172.22.10.1, der Benutzer ist sa, das Kennwort 123456.