在Linux系统上直接运行.net core程序可以参考:https://blog.csdn.net/zxy13826134783/article/details/105908201
本文测试环境
centos7
步骤:
一 先安装docker
1 更新yum到最新(时间会比较久)
yum update
然后一路输入y
2 安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
3 设置yum源为阿里云
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4 安装docker(-ce和-ee两个版本,-ee是要收费的..)
yum install docker-ce
然后一路y
5 查看版本,确定是否安装成功
docker -v
输出如下图:
6 启动Docker
systemctl start docker
二 拉取asp .net core镜像(需要等待很久)
docker pull mcr.microsoft.com/dotnet/core/aspnet:3.1
如下图:
三 根据镜像创建容器并启动容器
docker run -id --name=dotnet1 -v ~/DllFile:/DllFile -p 5000:5000 mcr.microsoft.com/dotnet/core/aspnet
如下图:
四 把发布的.net core 程序通过secureCRT上传到宿主机的DllFile目录下,具体操作可以参考
https://blog.csdn.net/zxy13826134783/article/details/105908201中的那个动图
五 进入容器,并启动.net core程序
六 在浏览器中输入http://ip:5000后输出如下图(注意:asp.net core程序时默认不支持ip来访问的,所以需要把ip改为localhost):
注意:
当部署web程序时,发现无法通过远程访问,原因有二:
1 asp.net core默认不允许通过ip来访问,这时需要在Program中增加如下图:
2 防火墙是否设置对应的端口为开放:
如需要开放5000端口,输入命令如下:
查询5000端口是否开放:firewall-cmd --query-port=5000/tcp
当输入为no时,输入命令:firewall-cmd --permanent --add-port=5000/tcp 来开放端口
设置完毕后,重启防火墙:firewall-cmd --reload
参考:https://www.cnblogs.com/xxoome/p/7115614.html
当然,如果是阿里云服务器或者腾讯云服务器,还需要到对应的控制台设置对端口进行放行