栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

net5项目手动发布到Linux环境的docker的超级简单方法

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

net5项目手动发布到Linux环境的docker的超级简单方法

本文讲解的是.net5创建的一个小项目Demo,发布后的文件,添加个Dockerfile 就可以在Docker上正常运行。

写作的目的:

1、不建议使用Visual Studio 自带的Dockerfile+Docker Desktop 这个组合,因为使用这个玩意,你都不知道它到底干了些啥。

2、我们发布站点的通常做法是,使用VS发布项目到文件夹,然后将发布的文件夹拷贝到站点目录下,然后创建IIS站点,那么Docker环境下是否也可以这么操作呢?答案是肯定的。

3、本地电脑安装了VMware虚拟机后,Docker Desktop就无法正常使用了,两者不能同时生效。

4、熟悉Docker的build->run 的过程玩法。

接下来我们开始干活!

1、先在准备一台安装好Docker的Linux虚拟机,若不会,请看我这篇文章《

Docker实战 一文搞定docker的所有操作》,建议大家都在电脑上安装下,我们开发者不仅要面向对象编程,还要面向运维编程!!!

2、VS创建一个WebAPI项目,目标框架选择.NET 5.0 。

3、项目创建完毕,默认会有一个Controller以及Swagger页面,F5运行一下,只要不报错即可。swagger访问记下一个测试地址,这个地址后面有用。

http://localhost:38175/WeatherForecast

4、VS里项目右击--发布--文件夹,指定文件夹,进行正常的发布。

5、发布好后,在发布后的文件目录下创建一个Dockerfile文件。

Dockerfile文件的内容如下,比较简单,一共5句话:

FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS baseEXPOSE 80WORKDIR /muxuedotapiCOPY . /muxuedotapiENTRYPOINT ["dotnet", "WebAPITest.dll"]

第1行指定基础镜像,

第2行对外暴露80端口,

第3行指定工作目录(不需要事先创建),

第4行拷贝当前目录下的所有文件到工作目录下,

第5行执行我们的webapi项目。

这5行代码一定要熟记。 

6、将包括Dockerfile的所有发布文件传到Linux的一个目录下。方法很多,上传后的目录如下:

7、进入到这个目录下

cd testapi2

查看当前目录里的内容:

[root@centos7-9 testapi2]# ls

8、docker build构建镜像

docker build -t dotapidockertest .

语法问 docker build -t 自定义镜像名   .      

注意:后面有个 .号别忽视了。

回车后构建,初次构建比较慢,因为还需要下载net5的基础镜像,第2次以后就会变快很多。

构建镜像成功后,可以看下生成的镜像:

docker images

我们看到 第一条 dotapidockertest 就是我们刚刚构建的镜像。

9、docker run运行镜像

docker run -d -p 8083:80 --name dotapicontainer2 dotapidockertest

-d表示后台运行;

-p 指定端口,Linux的端口8083对应容器的80端口,这个80端口要跟Dockerfile暴露的端口保持一致;

--name  指定容器的名称

最后面写上我们刚刚构建的镜像名。

回车后:​​​​​​​

[root@centos7-9 testapi2]# docker run -d -p 8083:80 --name dotapicontainer2 dotapidockertest968061d39a9954f3e1a8c8c16f4cc60f50a33ea570b87ca4012cff9657dbbfec

说明容器启动成功了。

我们来测试下:

curl 192.168.157.100:8083

返回的是空,说明已经通了,但是/swagger好像也是空了,我们可以通过具体的接口地址来访问。用本地浏览器:

http://192.168.157.100:8083/WeatherForecast

192.168.157.100是我Linux的IP,加上端口8083,然后是接口地址。访问成功了。

.Net5项目部署到Docker环境的工作就完成了。

接下来我们可以看下一些信息:

1、看下正在运行的容器:

docker ps -a

2、看下.Net5项目运行的情况:

docker logs dotapicontainer2

   

3、我们还可以进入容器里看下里面的情况:

docker exec -it dotapicontainer2 /bin/bash

进去默认的目录就是我们Dockerfile指定的工作目录/muxuedotapi  。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/984591.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号