CentOS7的docker中运行.Net 5 API项目
Posted superfeeling
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS7的docker中运行.Net 5 API项目相关的知识,希望对你有一定的参考价值。
1、创建WebAPI应用程序,.NET 5中增加了对Open API的支持,勾选。勾选启用Docker,对应的操作系统选择Linux。
2、修改StartUp文件的Swagger配置项,因为默认生成的代码只用于开发环境,当在Docker中执行以后,会在生产环境中运行。
这里是一个坑,如果不修改,在最终访问时会无法访问swagger,显示404。
参考链接:https://stackoverflow.com/questions/59824036/swagger-ui-gives-404-when-app-is-running-in-docker-container
if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } //把Swagger相关的部分移出来 app.UseSwagger(); app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "docketsample v1"));
3、复制整个项目到CentOS中对应的目录
4、切换对项目目录,也就是有Dockerfile的目录。然后执行以下命令
docker build -t aspnetapp . docker run -it --rm -p 5000:80 --name aspnetcore_sample aspnetapp
build
命令参数:
- 将映像命名为 aspnetapp。
- 在当前文件夹(末尾的句点)中查找 Dockerfile。
运行命令参数:
- 分配伪 TTY,即使未附加也使其保持打开状态。 (与
--interactive --tty
的效果相同。) - 容器在退出时自动删除。
- 将本地计算机上的端口 5000 映射到容器中的端口 80。
- 将容器命名为 aspnetcore_sample。
- 指定 aspnetapp 映像。
5、然后在本地浏览器输入http://192.168.1.107:5000/swagger/index.html进行访问,其中IP为CentOS的IP地址,5000为本地映射到Docker的端口。
相关链接参考:
https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/docker/building-net-docker-images?view=aspnetcore-5.0
https://www.cnblogs.com/sdonian/p/14030636.html
https://www.cnblogs.com/dotnet261010/p/12450488.html
https://www.cnblogs.com/Jerrycjc/p/14529778.html
https://www.cnblogs.com/Jerrycjc/p/15135882.html
Docker打包 Asp.Net Core应用,在CentOS上运行
本文主要介绍下运用docker虚拟技术打包Asp.net core应用。 Docker作为一个开源的应用容器引擎,近几年得到广泛的应用,使用Docker我们可以轻松实现应用的持续集成部署,一次打包,到处运行。
开篇借用百科上对docker的介绍。
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
方便大家学习:
http://www.docker.org.cn/(中文站)
https://www.docker.com/(英文站)
docker镜像站:https://hub.docker.com/
【搭建环境】
系统:CentOS 7.0 容器:Docker 1.12.6 .Net Core版本: .NET Core 1.1
工具:putty、winScp
一、首先,我们先介绍下关于docker容器的安装。
直接用黄狗安装工具安装docker。
#安装Docker
以上是关于CentOS7的docker中运行.Net 5 API项目的主要内容,如果未能解决你的问题,请参考以下文章 使用Docker构建基于centos7镜像的python环境 |