インターネットなしで Windows Server 2016 に Docker をインストールするにはどうすればいいですか?

インターネットなしで Windows Server 2016 に Docker をインストールするにはどうすればいいですか?

インターネットに接続されていない Windows Server 2016 VM に Docker をインストールしようとしています。公式の Docker ドキュメントには、インターネットに接続されていない Windows Server 2016 VM にインストールするためのアドバイスが記載されていないので、どうすればこれを実現できるでしょうか?

どこかのブログで読んだのですが、docker.exe および dockerd.exe ファイルをダウンロードして C:\Windows\System32 に配置し、実行するだけでdockerd.exe --register-serviceDocker をインストールできるとのことでした。これは「機能した」ように見えますが (docker info出力があります)、ローカル レジストリからイメージを取得しようとすると失敗します (エラー出力なしでフリーズするだけです)。さらに、DockerNAT NIC のセットアップがないことに気が付きました。他にも、私が知らない手順が欠けているのではないかと思います。

答え1

Docker の Web サイトには、実際にプロセス全体が文書化されています。

  1. PowerShell コマンド プロンプトで、接続されているマシンにインストーラー アーカイブをダウンロードします。
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. Docker をインストールするマシンに zip ファイルをコピーします。PowerShell コマンド プロンプトで、次のコマンドを使用してアーカイブを抽出し、Docker サービスを登録して開始します。
# 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. hello-world コンテナを実行して、Docker EE インストールをテストします。
docker container run hello-world:nanoserver

Windows Server 用 Docker Enterprise Edition をインストールする

使用している Windows Server のバージョンを指定できなかったため、次の情報が関連している可能性があります。

Docker Universal Control Plane は、イメージの非互換性の問題により、現在 Windows Server 1709 ではサポートされていません。UCP を使用するには、現時点では 1709 ではなく、現在の LTSB Windows リリースを使用してください。

関連情報