首先要有个linux的系统环境,
这里测试使用centos8,可以到官网下载镜像。
使用VMware安装环境。
全都准备好之后 使用root登陆,或者 登录后在名称窗口使用
su
命令获取root权限,输入完成后需要输入 root的 密码,回车。
然后安装.net core runtime
参考官方地址:https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-centos
命令
sudo dnf install aspnetcore-runtime-5.0
安装docker
yum -y install docker
启动docker
systemctl start docker
查看docker服务状态
systemctl status docker
以上说明docker安装成功
修改.netCore程序,修改program.cs文件
public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>().UseUrls("http://*:5000");//linux 运行端口号,请自行修改 });
右键项目添加docker支持
修改Dockerfile
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base WORKDIR /app COPY . . EXPOSE 5000 #这里的端口和前面的一样 ENTRYPOINT ["dotnet", "WebApi.core.dll"]
发布程序
生成的文件可以压缩为zip使用ftp或iis下载的方式传到linux
也可以使用MobaXterm工具直接上传(推荐)
在上传后的路径直接打开命令窗口
解压
unzip 安装包.zip -d 路径
打开到解压后的路径
cd 路径
运行 项目(--urls 后面的内容可以不加 端口和前面的保持一致)
dotnet 项目名.dll --urls http://*.5000
正常就可以看到以下内容,代表运行成功
输入命令
ip addr
查看linux地址,然后用ip:端口 即可访问程序。
二、使用docker发布
启动docker
//启动 sudo service docker restart //c查看运行状态 sudu service docker status
这个状态代表正常运行。
创建docker 镜像(后面的“.”非常重要,别忘记)
docker build -t 名字自己起 .
查看镜像
docker images
运行镜像(-v 后面的路径为项目地址,使用后可以热更新, -p后面的端口前面对应的是访问端口,后面对应的是docker内的端口,即前面设置的端口)
docker run -d --name webapi -v /home/admin/Public/website/docker/:/app -p 5001:5000 webapi
替换完程序后需要重启一下
docker restart 程序名称
另:附上一些用到的命令
docker -rm -f nameorid ##删除程序 docker -rmi -f nameorid ##删除镜像 firewall-cmd --zone=public --add-port=80/tcp --permanent ##开启防火墙某个端口 firewall-cmd --list-ports ##查看已经开放的端口 systemctl stop firewalld ##关闭防火墙 systemctl start firewalld ##开启防火窗 systemctl status firewalld ##防火墙运行状态 systemctl reload firewalld ##重启防火墙 top ##查看运行的进程 排行 ctrl+C 退出正在运行的程序
原文:https://www.cnblogs.com/zhouxiaojie/p/15223400.html