关于Docker在asp.net core中的应用。
Docker的优势:
1.静态的打包,即将整个asp.net core应用程序通过Dockerfile文件打包成docker镜像。
2.动态的运行,即使用docker run 命令动态的创建容器,通过容器来运行asp.net core应用程序。
在通过Dockerfile文件生成镜像时遇到的问题:
1>.docker build -t <镜像名称> 创建镜像文件是,镜像名称必须为小写;
2>.使用build命令创建镜像文件时必须包含Dockerfile的路径。(一般Dockerfile会在项目根目录下,此时用点(.)来代表Dockerfile的路径。)
3>.找了很久都没找到的错误:
CSC : error CS5001: Program does not contain a static 'Main' method suitable for an entry point [C:\src\DockerAPIDemo\DockerAPIDemo.csproj]
Build FAILED.
CSC : error CS5001: Program does not contain a static 'Main' method suitable for an entry point [C:\src\DockerAPIDemo\DockerAPIDemo.csproj]
0 Warning(s)
1 Error(s)
后来在一篇文章中看到出现这个错误是因为Dockerfile中WORKID 的路径出错了。(https://www.pianshen.com/article/20791173136/)
修改前是:WORKDIR "/src/DockerAPIDemo", 修改后是:WORKDIR "/src"
这三个问题解决后,镜像文件就创建成功了,就可以使用docker images 命令查看到所创建的镜像文件。
然后再使用docker run 命令运行镜像文件,创建容器,最后就可以通过docker ps 命令查看所创建的容器信息。
到此为止,就可以在不启动本地程序的情况下愉快的运行asp.net core应用程序啦!!!
文章中所有的内容都是自己的个人理解,如有不对之处,还望指出,共同学习...