docker部署netcore项目

1.部署历史

猿友们好,作为初来实习的我,已经遭受社会的“毒打”,所以请容许我在下面环节适当吐槽,3Q!



传统部署

​ 回顾以往在服务器部署webapi项目(非独立发布),dotnet环境、守护进程两个逃都逃不掉,正常情况下还得来个nginx代理。不仅仅这仨,可能牵扯到yum或npm。node等都要下载,对于像我这样的初学者简直谈之色变,只能祈祷千万别报错,不然又是被error折磨的一天~


docker部署

​ 在我一直认为自己只是一个开发人员的时候,领导突然发给我一个哔站网址,被要求学习使用docker将项目打包成镜像文件夹上传给甲方服务器。说实话我是及其不情愿的,这是运维的活啊!但一眼望去,公司哪有运维呢?(领导刷到莫在意哈,我的博客我就要有感必发!),何况我只是实习新手,那就多学多干吧。

​ 我点开哔站网址,全长3小时,看了一集完全听不懂,我心想公司是直接给我一个速成班吗?无奈,我重新挑选教学视频。以下是docker部署,就是只需在服务器上安装docker,然后传统所需的环境只要在docker中拉取,最后把其打包成一个镜像文件夹,如何是跨操作系统,这样只需在目标服务器上传文件夹即可。




2.正式部署

以net core项目为例,有两中生成镜像方式,一是在自己电脑打包发布项目上传至服务器再执行镜像命令;另一种是服务器统一打包发布构建镜像。


Linux

打包发布构建镜像都在Linux上,这个我不会,不介绍了


本地

1.说明

此示例基于https项目,需要在目录中有证书文件和相关代码。为了简单,下面的演示我没有把与证书相关步骤展示,猿友们在创建项目时可以不勾选https,则与演示步骤一致
此示例的一些命令没有解释,我希望是有针对性的写案例,不想添加解析徒增混杂,命令解释可见其他博客

2.生成Dockerfile文件

右击项目生成Dockerfile文件


这是生成的Dockerfile文件,有些命令是给服务器统一构建镜像使用的,因为我们在本地所以只保留这几行命令即可。




将Dockerfile文件设置为始终复制,让工作/发布的文件夹中包含它


我们要注意Dockerfile文件中EXPOSE 端口号命令,如果项目的Program指定了urls则必须使用其指定的,否则默认80(这个会单独介绍,太坑了!)


我看的教学视频中有提到删除配置文件的Docker启动,其实删除不删除都无所谓,只要不要使用该选项启动即可,因为这个需要本地电脑安装了docker![](https://img2023.cnblogs.com/blog/2574432/202301/2574432-20230126182750610-74204698.png)


3.上传服务

把项目上传到服务器中,Dockerfile文件也要存在才行



4.生成镜像和容器

我们将根目录切成项目位置(Dockerfile文件所在目录),执行生成镜像命令,并查看镜像列表



执行生成容器命令,并查看所有容器列表(注意,我使用的https,https也需要额外添加证书,这个也会单独博客,都是坑啊~朋友们可以在创建项目时不勾选http即可)


启动容器


浏览器访问,nice!



3.参考

感谢以下博主让我从深坑爬起~

#博客
https://mp.weixin.qq.com/s/JU4hTbsSbNkM5BwfBXUCiA
#视频
https://www.bilibili.com/video/BV1vC4y1p7Za?p=23&vd_source=6222e02dd83374fd4d8850e5384b16f6
作者:张跑跑快跑原文地址:https://www.cnblogs.com/long-live/p/docker-core.html

%s 个评论

要回复文章请先登录注册