Wie installiere ich Docker unter Windows Server 2016 ohne Internet?

2019
riqitang

Ich versuche, Docker auf einer Windows Server 2016-VM zu installieren, die nicht mit dem Internet verbunden ist. Die offizielle Docker-Dokumentation gibt keine Hinweise für die Installation auf einer Windows Server 2016-VM ohne Internet. Wie kann ich das erreichen?

Ich habe irgendwo in einem Blog gelesen, dass es ausreichte, die Dateien docker.exe und dockerd.exe herunterzuladen und in C: \ Windows \ System32 zu platzieren. Dann war das Ausführen dockerd.exe --register-servicevon Docker ausreichend. Während dies anscheinend "funktioniert" hat ( docker infoAusgabe hat), schlägt der Versuch fehl, ein Bild aus meiner lokalen Registrierung herunterzuziehen (es friert nur ohne Fehlerausgabe ein). Außerdem stelle ich fest, dass es keine DockerNAT-NIC-Konfiguration gibt, und ich schätze, dass andere Schritte fehlen, die mir nicht bekannt sind.

1

1 Antwort auf die Frage

3
Ramhound

Die Docker-Website dokumentierte den gesamten Prozess.

  1. Laden Sie an einer PowerShell-Eingabeaufforderung das Installationsprogrammarchiv auf einem Computer herunter, der über eine Verbindung verfügt.
invoke-webrequest -UseBasicparsing -Outfile docker-17.06.2-ee-7.zip https://download.docker.com/components/engine/windows-server/17.06/docker-17.06.2-ee-7.zip 
  1. Kopieren Sie die ZIP-Datei auf den Computer, auf dem Sie Docker installieren möchten. Verwenden Sie in einer PowerShell-Eingabeaufforderung die folgenden Befehle, um das Archiv zu extrahieren, zu registrieren und den Docker-Dienst zu starten.
# Extract the archive. Expand-Archive docker-17.06.2-ee-7.zip -DestinationPath $Env:ProgramFiles  # Clean up the zip file. Remove-Item -Force docker-17.06.2-ee-7.zip  # Install Docker. This requires rebooting. $null = Install-WindowsFeature containers  # Add Docker to the path for the current session. $env:path += ";$env:ProgramFiles\docker"  # Optionally, modify PATH to persist across sessions. $newPath = "$env:ProgramFiles\docker;" + [Environment]::GetEnvironmentVariable("PATH", [EnvironmentVariableTarget]::Machine)  [Environment]::SetEnvironmentVariable("PATH", $newPath, [EnvironmentVariableTarget]::Machine)  # Register the Docker daemon as a service. dockerd --register-service  # Start the Docker service. Start-Service docker 
  1. Testen Sie Ihre Docker EE-Installation, indem Sie den Hallo-Welt-Container ausführen.
docker container run hello-world:nanoserver 

Installieren Sie die Docker Enterprise Edition für Windows Server

Da Sie nicht angeben konnten, welche Version von Windows Server Sie verwenden, können die folgenden Informationen relevant sein.

Die Docker Universal Control Plane wird derzeit unter Windows Server 1709 aufgrund von Inkompatibilitätsproblemen mit Images nicht unterstützt. Verwenden Sie für die Verwendung von UCP zunächst die aktuelle LTSB-Windows-Version und nicht 1709.

Sie müssen weitere Schritte ausführen, um Docker in einer Situation auszuführen, in der Ihr System isoliert ist. Ihre Frage war speziell, wie man Docker ** installiert, so dass dies der einzige Teil Ihres Problems ist, auf den ich mich konzentrierte. Wie Sie einen Docker-Container offline ausführen, ist gut dokumentiert. Ramhound vor 6 Jahren 0
Ihre Antwort scheint darauf hinzudeuten, dass wenn ich den Docker-Ordner auf meinem PC einpacke und ihn dann im Verzeichnis Program Files auf der VM platziere, den Pfad zum Pfad hinzufüge, dann `dockerd --register-service` funktioniert ? riqitang vor 6 Jahren 0
Die Dokumentation weist darauf hin. Beim Versuch, die Formatierung zu korrigieren, habe ich fälschlicherweise das falsche Codesegment kopiert, weshalb ich einen Link zu den Anweisungen angegeben habe. ** Sie müssen die PowerShell-Befehle im zweiten Teil des Prozesses gemäß der Dokumentation ausführen. ** Ramhound vor 6 Jahren 1
Dank, dass es funktioniert hat, wurde ich verwirrt, weil es schien, als würde ich ein Bild ziehen, aber es stellte sich heraus, dass es sehr langsam lief. Ich konnte die Langsamkeit anzeigen, indem ich den Befehl "docker pull" von einem Remote-Computer (meinem PC) aus ausgab, der den Fortschritt genauer als die PowerShell-Sitzung zeigte. riqitang vor 6 Jahren 0