我的系统托盘中的Docker有一个菜单项切换到Linux/Windows容器。
应该是哪一个?
我不需要.NET,因为我正在编写Windows并使用。
我如何知道我想使用的一个Docker (例如mcr.microsoft.com/dotnet/core/runtime:3.1-nanoserver-1903
、mcr.microsoft.com/dotnet/core/runtime:3.1
或mcr.microsoft.com/mssql/server
)是Linux还是mcr.microsoft.com/mssql/server
?
发布于 2020-02-26 23:37:26
许多图像将被记录下来,他们的目标是哪个操作系统在码头枢纽或他们的文档。例如,mcr.microsoft.com/mssql/server
的目标是Linux,因此您需要运行Linux容器环境(滚动到完整的标记列表部分)。
对于更多的编程解决方案,您可以查看图像,以便从您的shell中了解更多有关它们的信息,如果您之前已经提取它们的话。例如,如果我检查像mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019
这样的IIS映像,我们可以看到它是在amd64 cpu上为amd64构建的。
您可以从命令行使用docker image inspect
检查图像。
docker image inspect mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019
结果将是一个描述您所检查的图像的大json blob:
[
{
...I've left out a lot of other details here
"Architecture": "amd64",
"OS": "windows",
"OsVersion": "10.0.17763.973",
...
}
]
要获得您应该运行的容器类型的答案,您需要查看"OS“值--在我的示例中,它是" Windows”,因此,如果我们试图将容器部署到linux环境中,我们将需要Windows容器的支持并得到一个错误。
为了简化此命令并防止您不得不挖掘json文件,您可以包括一个标志。例如:
docker image inspect mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019 --format='{{json .Os}}'
在我的示例中,我还包括了"OSVersion“,在考虑Windows容器与主机版本的兼容性时,这一点尤为重要。您可以在文档中了解更多关于Windows容器兼容性的信息。这个值对于基于linux的容器来说不太重要,而且可能并不存在于所有映像中。
https://stackoverflow.com/questions/60396182
复制相似问题