Visual Studio 2019 中带有 docker run 入口点的 tail 命令是什么?

Viv*_*Dev 5 docker visual-studio-2019

我正在运行 Windows 10 专业版,安装了 docker 和 linux 容器。

使用 Visual Studio 2019,我创建了一个基本的 .net 核心 Web api 应用程序,并启用了 docker 支持(linux)。

我构建了解决方案,在输出窗口(视图 -> 输出或 Ctrl + Alt + O)中,我在“显示输出自”下拉列表中选择了“容器工具”。滚动到最后(参见下图中的滚动条),您将看到 docker run 命令的入口点选项,如下所示。

--entrypoint tail webapp:dev -f /dev/null
Run Code Online (Sandbox Code Playgroud)

您的 ref 的整个 docker run 命令如下。

docker run -dt -v "C:\Users\MyUserName\vsdbg\vs2017u5:/remote_debugger:rw" -v "D:\Trials\Docker\VsDocker\src\WebApp:/app" -v "D:\Trials\Docker\VsDocker\src:/src" -v "C:\Users\UserName\.nuget\packages\:/root/.nuget/fallbackpackages" -e "DOTNET_USE_POLLING_FILE_WATCHER=1" -e "ASPNETCORE_ENVIRONMENT=Development" -e "NUGET_PACKAGES=/root/.nuget/fallbackpackages" -e "NUGET_FALLBACK_PACKAGES=/root/.nuget/fallbackpackages" -P --name WebApp --entrypoint tail webapp:dev -f /dev/null 
Run Code Online (Sandbox Code Playgroud)

所以我的问题是这个“尾巴”是什么。我看到了两个这样的问题(这个这个),但没有得到太多。同样从这里开始,tail 似乎是一个 linux 命令(我正在运行一个 linux 容器)但是它在这里做什么?

请赐教。

在此处输入图片说明

vij*_*jay 7

入口点是正在执行的二进制文件。
例子:--entrypoint=bash --entrypoint=helm像这样。
tailLinux的实用程序将显示文件的内容或通过默认,它的标准输入,标准输出/dev/null
/dev/null将命令标准输出重定向到空设备,这是一个特殊的设备,它会丢弃写入其中的信息。因此,当您tail -f /dev/null在终端中运行 a 时,它不会打印任何内容。

如果你想让你的容器在分离模式下运行,你需要在前台运行一些东西。一种简单的方法是tail/dev/null设备作为Docker 映像的CMDENTRYPOINT命令。