本文转载自微信公众号《UP技控》,作者conan5566。转载本文请联系UP技控公众号。1、创建站点创建一个ASP.NETCoreWeb应用,选择EnableDockersupport。自动为我们创建一个Dockerfile。2.编写Dockerfiledockerfile是一种文件格式的配置文件。用户可以使用dockerfile快速构建自定义镜像。它由逐行的命令语句组成,支持以#开头的注释行。dockerfile的topic内容一般分为4个部分。基本图像信息。维护者信息。使用label命令镜像操作命令。当容器启动时执行命令#Seehttps://aka.ms/containerfastmode以了解VisualStudio如何使用此Dockerfile构建您的图像以便更快地调试。#取决于将构建的主机的操作系统或运行容器,FROM语句中指定的图像可能需要更改。#有关详细信息,请参阅https://aka.ms/containercompat#FROMmcr.microsoft.com/dotnet/aspnet:5.0ASbase#WORKDIR/app#EXPOSE80#EXPOSE443##FROMmcr.microsoft.com/dotnet/sdk:5.0ASbuild#WORKDIR/src#COPY["AA.Mvc/AA.Mvc.csproj","AA.Mvc/"]#RUNdotnet恢复“AA.Mvc/AA.Mvc.csproj”#COPY。.#WORKDIR"/src/AA.Mvc"#RUNdotnetbuild"AA.Mvc.csproj"-cRelease-o/app/build##FROMbuildASpublish#RUNdotnetpublish"AA.Mvc.csproj"-c发布-o/app/publish##FROMbaseASfinal#WORKDIR/app#COPY--from=publish/app/publish.#ENTRYPOINT["dotnet","AA.Mvc.dll"]#parentmirror#FROMmicrosoft/aspnetcore:5.0#FROMmcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slimASbaseWORKDIR/appFROMmcr.microsoft。com/dotnet/aspnet:5.0ASbase##设置工作目录#WORKDIR/app###将文件复制并发布到/app#COPY。/app###设置端口#EXPOSE5005EXPOSE80COPY。.#使用AA.Mvc。dll运行ASP.NETCore项目,注意大小写#ENTRYPOINT["dotnet","AA.Mvc.dll","--server.urls","http://*:5005"]ENTRYPOINT["dotnet","AA.Mvc.dll"]dockerfile指令说明:FROM——指定创建镜像的基础镜像WORKDIR——配置工作目录EXPOSE——在镜像中声明服务监听的端口COPY——复制内容到imageENTRYPOINT-启动镜像命令的默认填充3.编译发布web项目,设置dockerfile文件输出,复制发布完成4.构建镜像,运行容器并浏览创建镜像。您可以使用命令dockerbuild,如下所示:dockerbuild-tcore-mvc。这一步可能比较慢,因为需要下载运行环境,请耐心等待参数分解:-t---在命令末尾指定镜像名称。---表示构建上下文是当前目录。默认情况下docker会使用context的根目录查找Dockerfile文件查看镜像列表,输入命令dockerimages创建并启动,查看容器dockerrun--namenetcore-mvc-d-p50879:80core-mvcdockerps-a参数说明-d,表示后台守护形式runcontainer-pexternalporttointernalcontainerportmapping--name指定容器的名称。当然你也可以不指定,默认会为我们创建。如果失败后再次运行docker,会提示名称已经存在。您可以使用以下命令删除容器。dockerrm-fnetcore-mvc最后一个参数core-mvc就是我们刚刚创建的镜像的名字,经过以上4步,在浏览器中输入地址http://localhost:50879/即可如图查看到此为止一个完整的项目在docker容器中手动运行。
