Damit ich sie geordnet und griffbereit habe, sind hier die Setups für Docker zusammengefasst.
Docker Dienst:
Docker ist ein Softwaresystem, das Anwendungen in isolierten
Betriebssystemumgebungen ausführt.
Anders gesagt: Eine leichtgewichtige Form der Virtualisierung bei der der
Kernel des Host-Systems genutzt wird. Also mehr als nur chroot
aber weniger als eine echte virtuelle Maschine.
Bis Mai 2023 stellte Microsoft “Docker Enterprise” zur Verfügung. Dieser Dienst wurde allerdings eingestellt: https://github.com/OneGet/MicrosoftDockerProvider
Nun steht mit dem Moby Opensource Projekt eine freie Alternative zur Verfügung, die unter Windows Server eingesetzt werden kann.
Die folgenden Befehle sind alle mit der Windows Server PowerShell mit Administratorrechten auszuführen:
Install-WindowsFeature -Name ContainersUninstall-WindowsFeature Windows-DefenderRestart-Computer -ForceInvoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/install-docker-ce.ps1" -o install-docker-ce.ps1.\install-docker-ce.ps1C:\ProgramData\docker\config\daemon.jsonStart-Service dockerdocker image pull mcr.microsoft.com/windows/nanoserver:ltsc2022docker image pull mcr.microsoft.com/windows/servercore:ltsc2022docker image pull mcr.microsoft.com/windows/nanoserver:1809docker image pull mcr.microsoft.com/windows/servercore:ltsc2019Weitere Details zum Moby Setup findet man unter learn.microsoft.com
Ebenso aufgelistet sind die JSON Konfigurationseinträge
Das aktuelle Installations-Skript für die Moby-Docker Binaries lädt Programmdateien, die mit Windows Server 2016 nicht mehr kompatibel sind. Allerdings funktionieren ältere Varianten mit dieser Plattform. Sie müssen manuell heruntergeladen werden.
Install-WindowsFeature -Name ContainersRestart-Computer -Forcecurl https://download.docker.com/win/static/stable/x86_64/docker-20.10.24.zip -o docker-20.10.24.zipdockerd.exe und docker.exe, diese beiden
Dateien müssen nach C:\Windows\System32 kopiert werden.mkdir C:\ProgramData\docker\configStart-Service dockerdocker image pull mcr.microsoft.com/windows/nanoserver:sac2016docker image pull mcr.microsoft.com/windows/servercore:ltsc2016Zu Dokumentationszwecken befindet sich hier noch die Setup-Anleitung des früheren Microsoft Docker-Provider (Docker Enterprise), der nun nicht mehr verfügbar ist:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12Install-PackageProvider -Name NuGet -RequiredVersion 2.8.5.201 -ForceInstall-Module DockerMsftProvider -Force
Holt den Docker MicrosoftProvider auf das SystemInstall-Package Docker -ProviderName DockerMsftProvider –ForceInstall-Module -Name DockerMsftProvider -Repository PSGallery -ForceInstall-Package -Name docker -ProviderName DockerMsftProvider -Force -RequiredVersion 19.03Install-Module -Name DockerMsftProvider -Repository PSGallery -ForceInstall-Package -Name docker -ProviderName DockerMsftProviderFolgende Quellen wurden verwendet:
Start-Service dockerdocker image pull mcr.microsoft.com/windows/nanoserver:sac2016docker image pull mcr.microsoft.com/windows/servercore:ltsc2016Folgende Quellen dienten als Basis:
sudo)
sudo zypper -n install docker docker-composesudo systemctl start dockersudo systemctl enable dockersudo usermod -aG docker $(whoami)/etc/docker/daemon.jsonsudo systemctl restart dockerdocker pull opensuse/leapdocker pull opensuse/tumbleweeddocker pull registry.suse.com/suse/sle15Folgende Quellen dienten als Basis:
sudo)
sudo apt remove docker docker-engine docker.io runcsudo apt updatesudo apt install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-commoncurl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"sudo apt updatesudo apt install -y docker-ce docker-ce-cli containerd.iosudo systemctl start dockersudo systemctl enable dockersudo usermod -aG docker $(whoami)/etc/docker/daemon.jsonsudo systemctl restart dockersudo usermod -aG docker $(whoami)/etc/docker/daemon.jsonroot angelegt werden.
z.B.: Container-Datenverzeichnis ändern:
sudo systemctl restart dockerdocker pull debian:latestdocker pull debian:bullseyedocker pull debian:11docker pull debian:bullseye-slimdocker pull debian:10docker pull debian:busterdocker pull debian:buster-slimdocker pull debian:9docker pull debian:stretchdocker pull debian:8docker container ls123456789abc) oder über
einen Namen identifiziert. Hat ein Container keinen Namen, wird einer
zufällig generiert.docker container ls -adocker container prune -adocker image ls -a123456789abc) oder über
eine Kombination aus einem Namen und einem TAG identifiziert
(z.B.: my_image_name:tag wie in debian:10)docker image prune -adocker run -it image_name:tagdocker run -it image_iddocker run -v d:\shared_on_host:c:\shared -it myimage:tagdocker run -v /shared_on_host:/shared -it myimage:tagshared angelegt und darin
wird alles bereitgestellt, was am Host-System im Verzeichnis
shared_on_host verfügbar ist. So können zwischen Host und
Container Daten ausgetauscht werden.-v + ` ` + host-path + : + container-pathdocker run -p 8080:80 -it httpdhttpd Apache-Webserver-Image und leitet am Host-System
den Port 8080 in den Container auf Port 80 um. Man kann dann am
Host z.B.: per http://host-ip:8080 auf die Webseite zugreifen,
die im Container auf Port 80 läuft.docker container exec -it container_id cmd.exedocker container exec -it container_name /bin/shdocker container kill container_id_or_nameopengate.at.