.Net 6 WebApi 项目部署到 Linux 系统上的 Docker 容器
1.创建一个基础的WebApi项目
注意:因为发布时候,Dockerfile文件必须和解决方案.cspro文件放在同级,所以建议勾上这个,当时遇到这个问题,导致打包镜像时找不到.cspro文件,搞了好久
点击创建,项目基础框架是这样的:
在Program中能够看到 MinimalApi 自带的示例:
切换到项目配置运行,能够请求到数据:
2.将项目文件用Xftp拷贝到Linux系统中,我这里用的是VMWare虚拟机的CentOS7系统,
拷贝到root目录下,自建一个发布项目的文件夹(这里我创建的是DockerPublish文件夹)里面
3、输入命令,进入到项目文件夹里面:
系统需装好docker,安装好常用的命令、配置好环境。
输入命令:docker images -查看当前的全部镜像:
4.通过 Dockerfile 文件 ,将项目打包成镜像:
命令: docker build -t [新建的镜像名]:[指定的版本号] -f Dockerfile .
注意:Dockerfile 后面的 "." 不可少!
输入打包镜像的命令之后,开始打包,看到如下信息表示镜像创建成功:
5. 通过镜像构建容器实例:
命令:docker run --name mywebapi -d -p 5566:80 net6webapi:1.0
命令格式:docker run --name [自定义容器名] -d -p [自定义对外端口]:[Dockerfile中指定的端口,不修改的话,一般都是80] [镜像名]:[版本号]
容器创建好之后,通过命令 :docker ps (查看正在运行的容器) , docker ps -a (查看全部容器)
docker ps 能够看到刚才创建的容器,就成功了:
接下来在电脑上,通过虚拟机的地址访问mywebapi,可以用 ifconfig 命令 查看虚拟机地址,
如果你和我一样也用的 Xshell7 连接工具,那么左下角可以直接看到虚拟机的地址:
浏览器输入地址 : 192.168.146.129:5566/weatherforecast 能够访问到数据,就成功了!
5566端口即为第5步,镜像实例化成容器时,指定的容器端口
注意:如果访问不到,但是 docker ps 可以看到容器,说明容器运行了,但是镜像有问题,会有报错,
通过命令:docker logs [容器名] 可以看到运行的容器,报错日志
6.通过一个镜像,构建多个容器实例,给不同端口,拿到一个镜像,哪儿都能跑起来,跑同一套代码
如果部署到服务器上,别人拿到我的镜像,也能跑我的代码,这就是docker的优势,一个镜像就是整个程序。
在实际项目开发中,会将同一个镜像的多个容器实例,使用 Nginx 负载均衡配置,提高程序的性能。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?