Docker Windows abgeschaltet

Ich wollte einfach nur einen Windows Build Server mit Docker neu aufsetzen. Doch Microsoft hat ihren offiziellen MsftDockerProvider vom Netz genommen.

An dieser Stelle war man Aufschrei in ganz Wien zu hören. Zum Glück ist die Alternative das Moby Projekt, welches Docker für Windows Server weiter unterstützt.


Bisherige Installation von Docker

Bisher wurde Docker auf Windows Servern mit

1Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
2Install-Package -Name docker -ProviderName DockerMsftProvider

eingerichtet. Die Prozedur lud die entsprechenden Pakete aus dem Netz und installierte den Docker Dienst im Windows System. Doch nun sehen wir Fehler wie:

 1WARNING: MSG:UnableToDownload https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409  
 2WARNING: Unable to download the list of available providers. Check your internet connection.  
 3WARNING: Cannot find path  
 4'C:\Users\ADMINI~1\AppData\Local\Temp\2\DockerMsftProvider\DockerDefault_DockerSearchIndex.json' 
 5because it does not exist.
 6WARNING: Cannot bind argument to parameter 'downloadURL' because it is an empty string.
 7WARNING: The property 'AbsoluteUri' cannot be found on this object. Verify that the property exists.
 8WARNING: The property 'RequestMessage' cannot be found on this object. Verify that the property exists.
 9Install-Package : No match was found for the specified search criteria and package name 'docker'. 
10Try Get-PackageSource to see all available registered package sources.

Früher lag offenbar unter https://dockermsft.azureedge.net/dockercontainer/DockerMsftIndex.json die notwendige Information, wo die Daten heruntergeladen werden konnte, doch das ist nun abgeschaltet, wie man auf GitHub von MicrosoftDockerProvider nachlesen kann.

Das bedeutet: Ab sofort kann man Docker Enterprise für Windows Server nicht mehr regulär installieren.

Alternative: Das Moby Projekt

Wer Enterprise-Support braucht, kann die Mirantis Container Runtime nutzen … und darf dafür auch extra zahlen.

Und wer einfach nur seine Buildumgebung wieder zum Laufen bekommen will, kann das OpenSource Projekt Moby nutzen, welches die Docker Dienste ohne den Unternehmens-Support zum Download zur Verfügung stellt.

Man hat dann zwar nur eine AS IS Software ohne Garantien, kann sich aber die Quellen sichern und im Notfall den Dienst auch selbst bauen.

Die Sourcen und Releases liegen auf github.com/moby/moby

Installation der Moby Docker Container Runtime

Nachdem das Windows Container Feature aktiviert ist, lädt man sich am einfachsten ein Installationsscript für die Powershell herunter, das die aktuellen Binärdateien herunterlädt und in C:\Windows\System32\ installiert.

1(new-object System.Net.WebClient).DownloadFile("https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/install-docker-ce.ps1", "install-docker-ce.ps1")
2.\install-docker-ce.ps1

Sonderfall Windows Server 2016

Die aktuellen Moby Builds funktionieren erst ab Server 2019. Unter älteren Windows Version verweigert der aktuelle dockerd.exe seinen Dienst.

Man kann sich allerdings auch unter download.docker.com/win/static/stable/x86_64/ eine ältere Version der Runtime herunterladen, z.B.: v20.10.24. Danach muss man die beiden Programme docker.exe und dockerd.exe aus der ZIP Datei einfach nach C:\Windows\System32 kopieren und hat danach auch unter Server 2016 wieder einen funktionalen Docker Dienst.

Fazit

Pfui Microsoft! Das konntet ihr schon mal besser!

Wenn ich an Windows eines geschätzt habe, dann war das seine zuverlässige Kompatibilität und der lange Support von Software. Selbst heute erhalte ich noch über WSUS alle Windows XP und Windows 2000 Updates, was für Industriemaschinen immer noch notwendig sein kann.

Dass gerade Docker einfach mal so abgedreht wird, ist nicht akzeptabel. Man hätte die alten Binaries liegen lassen können und nur für Neuinstallationen auf die Alternativen verweisen können.

Wenn gleich das Moby Projekt sicher toll ist, so ist der mit dem Server mitgekaufte Enterprise-Support plötzlich weg … und was passiert jetzt, wenn ein Kunde hierfür ein Anliegen hat?
Dann wird es unerwartet teuer.

Ich überlege jetzt trotzdem, ob ich nicht meine laufenden Windows Server mit der “alten” Docker Installation jetzt dupliziere und per SysPrep für spätere Neuinstallationen konserviere.

In jedem Fall kostet mich dieser Umstand jetzt sowohl in der Firma wie auch privat jede Menge wertvolle Zeit.