在Windows Subsystem for Linux (WSL)中运行Windows容器

48次阅读
没有评论

问题描述

在Windows上安装了Docker,并且可以在WSL的Ubuntu终端中运行Docker。但是当他尝试从Docker Hub拉取或运行Windows镜像时,出现以下错误:

root@DESKTOP-J9B5HJG:~# docker info  -f '{{.OSType}}/{{.Architecture}}'
linux/x86_64
root@DESKTOP-J9B5HJG:~# docker pull mcr.microsoft.com/windows:1809-amd64
Error response from daemon: manifest for mcr.microsoft.com/windows:1809-amd64 not found
root@DESKTOP-J9B5HJG:~#

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

根据回答1,如果你正在使用Docker for Windows,可以通过右键单击托盘中的Docker图标,然后选择”Switch to windows containers”来切换到Windows容器。
以下是在Windows上运行Windows容器的步骤:
1. 右键单击Docker图标,选择”Switch to windows containers”。
2. 运行以下命令以验证Docker引擎已切换到Windows模式:

docker info  -f '{{.OSType}}/{{.Architecture}}'

你应该看到以下输出:

windows/x86_64

现在你可以拉取和运行Windows镜像了。

方案2

根据回答2,要运行Windows容器,你需要一个Windows版的Docker引擎。你可以参考这个回答了解更多信息:https://stackoverflow.com/questions/42158596/can-windows-containers-be-hosted-on-linux
请注意,根据回答1的说明,Docker for Windows包含两个不同的引擎:一个在虚拟机中运行的Linux引擎,以及一个在Windows内核上本地运行的Windows引擎。但是,很快将会有选项可以在Windows内核上本地运行Linux容器。

正文完