隐藏

.Net6 Web API 部署到linux服务器(docker)

发布:2023/7/21 17:20:42作者:管理员 来源:本站 浏览次数:861

1.白嫖一个云服务器


第一步就是白嫖一个linux系统的云服务器

2. 远程连接云服务器 配置docker 和mysql

1.docker


docker 安装 见 linux上安装Docker(非常简单的安装方法) - 腾讯云开发者社区-腾讯云 (tencent.com)

2.mysql


这个得看自己云服务器的版本 centos 不能安装最新版的 mysql 要安装 mysql 5.7 因为 docker上的mysql 是基于 ubuntu环境的


步骤


docker pull mysql:5.7


docker run --name mysql5.7 -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.7


然后就可以了


如果要远程访问的话 要在云服务器的管理台 防火墙 配置 规则 增加端口3306



部署WebAPI


首先要更改连接字符串 格式


"ConnectionStrings": {

   "DefaultConnection": "server=(自己配置);user=root;password=123456;database=PatentManagementSystemDB"

 }


ifconfig -a 查看本机地址 本机地址一般为 127.0.1.1


发布成功后


在发布的文件夹下 添加 Dockerfile文件 添加后 保存


具体内容


FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base

WORKDIR /app

EXPOSE 80

COPY ./ ./

ENTRYPOINT ["dotnet", "PatentManagementSys.dll"]


PatentManagementSys.dll 替换为 自己项目的dll



也可以不发布直接将整个解决方案上传云服务器 使用vs自动生成的 Dockfile (这个有点小问题 涉及到一些路径问题不好把控)


将整个文件上传linux服务器


然后 cd 这个文件夹


执行


docker build -t [name] . (注意小写)(注意后面的空格+. 不能少) -t 后面是自己取得的镜像名称


然后


docker run -d -p [设置端口]:80 --name [name1] [name] (第一个设置端口 为自己部署的端口)--name 后面第一个[name1] 设置运行的容器名称 第二个[name]镜像名称 要和 build 的镜像名称保持一致



完成 然后设置 端口进站规则即可



linux 指令 不需要那麽多


docker 指令见 docker hlep


借助docker部署非常快 如果熟悉相关指令的话