了解docker中的入口点
我将把我的asp.net核心1.0代码从Windows环境推送到远程Linux docker容器。基本上,容器将作为服务器承载应用程序 现在我在不同的博客中看到ENTRYPOINT的不同配置了解docker中的入口点,docker,asp.net-core,Docker,Asp.net Core,我将把我的asp.net核心1.0代码从Windows环境推送到远程Linux docker容器。基本上,容器将作为服务器承载应用程序 现在我在不同的博客中看到ENTRYPOINT的不同配置 ENTRYPOINT[“/kestrel”]at ENTRYPOINT[“dnx”、“-p”、“project.json”、“web”] ENTRYPOINT[“dnx”、“/src/HelloMvc6”、“kestrel”]at ENTRYPOINT[“/web”]如果使用 我是新来的码头工人。我不知道它
ENTRYPOINT[“/kestrel”]
atENTRYPOINT[“dnx”、“-p”、“project.json”、“web”]
ENTRYPOINT[“dnx”、“/src/HelloMvc6”、“kestrel”]
atENTRYPOINT[“/web”]
如果使用我是新来的码头工人。我不知道它们的区别,也不确定哪一个可以使用。这些是来自
project.json
的各种命令,或者是调用project.json
中命令的脚本
如果查看,您将看到一个命令列表,如:
"commands": {
"gen": "Microsoft.Extensions.CodeGeneration",
"run": "run server.urls=http://localhost:5003",
"web": "Microsoft.AspNet.Server.Kestrel",
"kestrel": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://localhost:5004",
"weblistener": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5002"
},
此外,发布应用程序时,将生成具有命令名称的脚本。例如,对于kestrel
dnx将生成kestrel
(unix)和kestrel.cmd
(windows),它只需使用参数kestrel
调用dnx
-p
传递到dnx
指定要运行的项目。在较新版本的dnx
中,您不需要-p
;相反,传递的第一个参数是项目路径
因此,在你的情况下:
ENTRYPOINT[“/kestrel”]
是调用dnx的脚本。红隼
或dnx红隼ENTRYPOINT[“dnx”、“-p”、“project.json”、“web”]
使用参数-p project.json web
(web命令)调用dnx
ENTRYPOINT[“dnx”、“/src/HelloMvc6”、“kestrel”]
与2相同,但使用kestrel
命令ENTRYPOINT[“/web”]
与1相同,调用调用web
命令的脚本您刚刚发布了一个随机命令列表。我建议从开始,然后问一些不清楚的问题。Entrypoint只是docker启动时运行的命令。您列出的示例大致相同。No.1和4
kestrel
和web
本身就是一个shell脚本,如果打开它,您会发现相同的dnx….
命令。您可能想研究如何正确使用此命令。@warmoverflow,第4名。为什么要使用web
?这是一个特殊的词吗?我找不到那方面的文件。这是命令,谢谢。下面的问题。从中,它使用了一个不同的入口点[“/bin/bash”、“-c”、“dnx watch web”]
。当我们将asp.net部署到docker容器时,我们应该使用这个还是从我最初的ENTRYPOINT
1,2,3和4列表中选择任何一个?dnx watch
通常是一个开发场景,因为它也需要您部署源代码。当您开发和更改代码时,这很好,因为当文件更改时,您的应用程序将重新启动,但在文件不更改的生产场景中,您不需要这样做。