本文属于原创,但大多是借用别人的东西:

step 1

先按照下面的帖子进行安装:

Windows Server 安装docker_windows server docker_江湖人称于老师的博客-CSDN博客

但可能会出现下面的问题:

无法从 URI“https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409”下载到

这个参考:
警告: 无法从 URI“https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409”下载到“”。_gpg: 警告: 無法抓取 uri_小木子。。。的博客-CSDN博客

鄙人执行下面的语句 就好了(在powershell里直接当成一条命令执行):
 

[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12;


然后再重新执行之前的安装指令,继续~

下面就能正常安装了, 后面碰到安装portainer 的问题,

这里额外插入一个问题:
后面可能需要编辑daemon.json这个文件,但是在这里却搜索不到这个文件,所以无从修改,下面给出解决方式:在windows server 2016上这个文件的位置在:C:\ProgramData\docker\config (%ProgramData%\docker\config, 手动拼写,错误勿怪)

如果有这个文件则直接修改,如果没有则手动创建daemon.json,下面是参考内容,自己根据情况配置:

{
    "experimental":true,
    "registry-mirrors": ["https://cr.console.aliyun.com", "https://registry.docker-cn.com"]
}

这个文件首先开启了experimental, 还有就是配置了国内镜像源

回到正题,继续安装 portainer ,但鄙人一直出现如下错误:
 

PS C:\Users\Administrator> docker run -d -p 18000:8000 -p 19000:9000 --name portainer --restart always -v \\.\pipe\docker_engine:\\.\pipe\docker_engine  portainer/portainer
Unable to find image 'portainer/portainer:latest' locally
latest: Pulling from portainer/portainer
docker: no matching manifest for windows/amd64 10.0.14393 in the manifest list entries.
See 'docker run --help'.

事情到这里了, 最终鄙人并没有解决在windows server 2016上安装docker的问题。

根据下面gpt的提示,升级了系统到windows server 2019 ,桌面版docker直接就安装成功了(从docker官网下载的桌面版)   根本就没有上面的那么多事情!!!

鄙人看了下 docker的信息如下: 仔细一看, 内核并没有切过来~

PS C:\Users\Administrator> docker info
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  app: Docker App (Docker Inc., v0.9.1-beta3)
  cluster: Manage Mirantis Container Cloud clusters (Mirantis Inc., v1.9.0)
  registry: Manage Docker registries (Docker Inc., 0.1.0)

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 20.10.9
 Storage Driver: windowsfilter
  Windows:
 Logging Driver: json-file
 Plugins:
  Volume: local
  Network: ics internal l2bridge l2tunnel nat null overlay private transparent
  Log: awslogs etwlogs fluentd gcplogs gelf json-file local logentries splunk syslog
 Swarm: inactive
 Default Isolation: process
 Kernel Version: 10.0 14393 (14393.447.amd64fre.rs1_release_inmarket.161102-0100)
 Operating System: Windows Server 2016 Standard Version 1607 (OS Build 14393.447)
 OSType: windows
 Architecture: x86_64
 CPUs: 4
 Total Memory: 63.76GiB
 Name: WIN-GLE4DU7PDGU
 ID: JJJG:MGE3:VB5H:JGIX:HCM3:5KAM:D5OC:SFZZ:R7KW:MDIU:JC25:3LGD
 Docker Root Dir: C:\ProgramData\docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: true
 Insecure Registries:
  127.0.0.0/8
 Registry Mirrors:
  https://cr.console.aliyun.com/
  https://registry.docker-cn.com/
 Live Restore Enabled: false
 

下面附属一些从gpt得到的结论(从gpt得到的复制粘贴,内容准确性请自我核对~):

1. 如何修改内核为linux

以下是将Docker的OSTypewindows更改为linux的详细教程:

  1. 停止并卸载Docker Desktop for Windows(如果已安装)。

如果您已经安装了Docker Desktop for Windows,请在开始更改之前卸载它。您可以使用以下步骤卸载:

  • 打开Windows的“设置”应用程序,然后选择“应用”。
  • 在应用程序和功能列表中,找到“Docker Desktop”并单击它。
  • 单击“卸载”按钮,然后按照提示完成卸载过程。
  1. 安装适用于Linux的Docker引擎。

要安装适用于Linux的Docker引擎,请按照以下步骤操作:

  • 在Linux系统上打开终端,并确保已安装docker.io软件包,可以使用以下命令进行安装:sudo apt-get update && sudo apt-get install docker.io
  • 安装完成后,可以使用以下命令启动Docker服务:sudo service docker start 或者 sudo systemctl start docker
  • 确认Docker服务已启动成功,可以使用以下命令:sudo docker ps
  1. 验证Docker是否已成功启

2. 要在window server2016上安装 OSType为linux的docker

要在Windows Server 2016上安装使用OSType为Linux的Docker,您需要进行以下步骤:

  1. 确认您的Windows Server 2016版本支持Docker。

在安装Docker之前,请确保您的Windows Server 2016版本满足以下要求:

  • Windows Server 2016 Standard或Datacenter版本(不支持Nano Server版本)。
  • Windows Server 2016版本为14393或更高版本。
  • 安装了所有Windows更新。
  1. 安装适用于Windows的Docker引擎。
  • 下载适用于Windows的Docker引擎,可以从Docker官方网站下载,下载链接:Install Docker Desktop on Windows
  • 运行下载的Docker安装程序,并按照提示进行安装。
  • 在安装过程中,选择使用Windows容器或Linux容器,选择Linux容器。
  • 安装完成后,打开PowerShell并输入以下命令:docker version,以验证Docker是否成功安装,并确认OSTypelinux
  1. 测试Docker。

可以使用以下命令运行一个简单的Docker容器,以确保Docker可以正常工作:

 

Copy code

docker run hello-world

如果Docker可以正常工作,您将看到一个来自Docker的欢迎消息。

请注意,在Windows Server 2016上安装使用OSType为Linux的Docker需要满足一些额外要求和限制,例如需要启用Linux子系统(WSL)等。建议在进行安装之前,详细了解相关文档并仔细考虑您的需求和环境。

3. 如何 启用 启用Linux子系统(WSL)

要在Windows Server 2016上启用Linux子系统(WSL),可以按照以下步骤操作:

  1. 检查您的Windows Server 2016版本是否支持WSL。

WSL仅支持Windows 10版本1709或更高版本和Windows Server版本1709或更高版本。请确保您的Windows Server 2016版本为1709或更高版本,否则无法启用WSL。

  1. 启用适用于Linux的Windows子系统功能。

在启用WSL之前,您需要启用适用于Linux的Windows子系统功能。可以使用以下步骤操作:

  • 打开Windows PowerShell,并使用管理员权限运行。
  • 输入以下命令并运行:Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
  • 按照提示重启计算机,以完成Windows子系统功能的启用。
  1. 安装适用于Linux的发行版。

安装WSL后,您需要安装适用于Linux的发行版,例如Ubuntu或Debian。可以按照以下步骤操作:

  • 打开Microsoft Store应用程序,并搜索要安装的Linux发行版。
  • 选择要安装的发行版,并单击“获取”按钮进行下载和安装。
  • 安装完成后,打开该发行版,按照提示进行初始化,并创建一个用户名和密码。
  1. 安装Docker并启用Linux容器支持。

安装适用于Linux的Docker引擎时,请确保启用Linux容器支持。可以按照以下步骤操作:

  • 下载适用于Windows的Docker引擎,可以从Docker官方网站下载。
  • 在安装过程中,选择使用Linux容器,安装完成后,打开PowerShell并输入以下命令:docker version,以验证Docker是否成功安装,并确认OSTypelinux

完成以上步骤后,您可以在Windows Server 2016上使用WSL和Docker来运行适用于Linux的应用程序和服务。

4. 如何查看 Windows Server版本

要查看Windows Server的版本,可以按照以下步骤操作:

  1. 打开“运行”对话框。

您可以按下“Windows键+R”组合键,或者在“开始”菜单中搜索“运行”,以打开“运行”对话框。

  1. 输入“winver”并按Enter键。

在“运行”对话框中输入“winver”并按Enter键,将打开“关于Windows”对话框。

  1. 查看Windows Server版本。

在“关于Windows”对话框中,您将看到Windows Server的版本号和版本信息。例如,Windows Server 2016的版本号为“Version 1607”,而Windows Server 2019的版本号为“Version 1809”。

另外,您还可以通过在PowerShell中运行以下命令来查看Windows Server的版本信息:

 

vbnetCopy code

Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" | Select-Object ProductName, ReleaseId

运行该命令后,您将看到Windows Server的产品名称和版本信息。

5. 在windows上跑linux内核的docker,与跑windows内核的docker,性能上有多少差别, 或者是否有其他影响?

在Windows上跑Linux内核的Docker与跑Windows内核的Docker相比,可能会有以下方面的性能差异和影响:

  1. 性能差异:

由于Windows和Linux内核的设计和实现不同,因此在Windows上运行Linux内核的Docker可能会比在Linux上运行同一Docker镜像的性能略低。例如,对于某些I/O密集型工作负载,Windows上的Docker可能会比Linux上的Docker表现更差。

  1. 资源利用率:

在Windows上运行Linux内核的Docker时,需要使用Windows Subsystem for Linux (WSL)或虚拟机等技术来模拟Linux环境,这会占用一定的系统资源,并可能会影响系统的资源利用率。

  1. 应用程序兼容性:

有些应用程序可能只能在特定的操作系统环境下运行,例如仅在Linux环境下运行或仅在Windows环境下运行。如果将这些应用程序封装在Docker镜像中,运行在不同的操作系统环境下可能会导致兼容性问题。

  1. 安全性:

在Windows上运行Linux内核的Docker需要使用WSL或虚拟机等技术,这可能会增加系统的攻击面和安全风险。

综上所述,在Windows上运行Linux内核的Docker可能会有一些性能差异和影响。但是,这些影响通常不会很大,具体的差异和影响还取决于具体的应用场景和使用方式。因此,在选择运行环境和Docker镜像时,需要根据实际情况进行评估和选择。

接下来鄙人取安装最新版本的windows server,请等后续~

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐