CentOS 7下Docker打包.NET Core MVC应用实践

需积分: 35 4 下载量 164 浏览量 更新于2024-09-08 收藏 625KB DOCX 举报
该资源是一份关于在CentOS 7环境下使用Docker打包.NET Core MVC应用的教程。作者从创建项目开始,详细介绍了如何生成Docker镜像、启动容器以及运行网页的过程。其中涉及到的关键步骤包括开放端口、编写Dockerfile、构建镜像以及运行容器。 在使用Docker进行.NET Core应用的部署时,首先需要配置CentOS 7的防火墙,允许外部访问应用所需的端口。这里提到的是开启8082端口,命令行操作如下: 1. 永久添加8082端口到public区域: ```bash firewall-cmd --zone=public --add-port=8082/tcp --permanent ``` 2. 重启firewalld服务使更改生效: ```bash systemctl restart firewalld.service ``` 3. 重新加载firewalld规则: ```bash firewall-cmd --reload ``` 接下来是Dockerfile的内容,它定义了构建镜像的步骤: 1. 使用`microsoft/dotnet:2.1-sdk`作为基础镜像,这是.NET Core 2.1的开发环境。 2. 设置工作目录为/app。 3. 将项目的.csproj文件复制到工作目录,并运行`dotnet restore`来恢复依赖项。 4. 复制项目的所有文件到工作目录,然后运行`dotnet publish -c Release -o out`来发布应用(Release模式)。 5. 定义容器启动时执行的命令,即`dotnet out/TestApp.dll`。 构建镜像的命令是: ```bash docker build -t app . ``` 最后,运行容器并映射端口,设置环境变量,以确保应用能在容器内部正常启动: ```bash docker run -p 8082:80 -e "ASPNETCORE_URLS=http://+:80" -it --name test --rm app ``` 以上命令将容器的80端口映射到主机的8082端口,并设置环境变量`ASPNETCORE_URLS`,以便.NET Core应用监听正确的端口。`-it`参数表示交互式模式,`--name`指定容器名称,`--rm`表示容器退出时自动删除。 整个流程参考了https://www.cnblogs.com/bluesummer/p/8087326.html的文章。 通过这个教程,开发者可以了解如何在Docker环境下构建和运行.NET Core MVC应用,这对于分布式系统部署、持续集成和持续部署(CI/CD)具有重要意义。Docker提供了轻量级的虚拟化方式,使得应用的打包和分发变得更加便捷。同时,利用容器化技术,可以确保应用在不同环境中保持一致性,简化了运维工作。