我正在尝试在未连接到互联网的 Windows Server 2016 VM 上安装 docker。官方 docker 文档没有提供任何有关在没有互联网的情况下在 Windows Server 2016 VM 上安装的建议,那么我该如何实现这一点?
我在某处读到一篇博客,上面说下载 docker.exe 和 dockerd.exe 文件并将它们放在 C:\Windows\System32 中,然后运行dockerd.exe --register-service
即可安装 Docker。虽然这似乎“有效”(docker info
有输出),但尝试从我的本地注册表中拉取映像失败(它只是冻结而没有错误输出)。此外,我注意到没有 DockerNAT NIC 设置,我猜还有其他我不知道的步骤缺失了。
答案1
Docker 网站实际上记录了整个过程。
- 在 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
- 将 zip 文件复制到要安装 Docker 的计算机。在 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
- 通过运行 hello-world 容器来测试您的 Docker EE 安装。
docker container run hello-world:nanoserver
为 Windows Server 安装 Docker 企业版
由于您未能提供所使用的 Windows Server 版本,因此以下信息可能相关。
由于镜像不兼容问题,Windows Server 1709 目前不支持 Docker Universal Control Plane。若要使用 UCP,目前请使用当前 LTSB Windows 版本,而不是 1709。