.NET Core 3.1 Linux使用docker打包并部署

.NET Core 3.1 Linux使用docker打包并部署

生成环境

Windows 10+VS2019+.NET Core 3.1+Docker20.10.5

准备工作

linux 安装.net core 运行环境

#检查安装的.NET Core SDk 情况命令
dotnet --list-sdks
 
#检查安装的.NET Core 运行库情况命令
dotnet --list-runtimes

在这里插入图片描述
如果没有安装

#Centos8中安装.NET Core SDK命令
sudo dnf install dotnet-sdk-版本
 
#比如我要安装.NET Core SDK 3.1 版本命令如下
sudo dnf install dotnet-sdk-3.1

在这里插入图片描述
或者

1:sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm 
2:sudo yum update            或者直接安装 sudo yum install dotnet-sdk-3.1

.netCore 程序

生成运行发布的程序,确认无误。
在运行发布后的文件夹下添加名为Dokcerfile文件,需要注意此文件没有后缀,同时需要注意文件名的大小写,如下图所示:
在这里插入图片描述
对应的Dockerfile文件如下所示:

#引入镜像,低版本 docker 去掉 AS base
#换成别人做的阿里镜像
#FROM registry.cn-hangzhou.aliyuncs.com/newbe36524
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base

#配置工作目录 相当于cd
WORKDIR /app

#暴露容器端口,此端口与程序运行路径一致,可
EXPOSE 6001

#复制文件到工作目录
COPY . .

#ENV :配置系统环境变量,比如程序环境环境等在这里配置(开发、预发、线上环境)
#这里是配置程序运行端口,如果程序不使用默认的80端口这里一定要设置(程序运行端口)
ENV ASPNETCORE_URLS http://+:6001

#设置时间为中国上海,默认为UTC时间
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

#启动程序
ENTRYPOINT [“dotnet”, "Citms.Common.Web.dll"]

将生成后的文件拷贝到linux服务器目录下
在这里插入图片描述

构建docker 镜像

cd  /opt/homenet 
docker build -t hnyy-smw:v1.0 .

执行结果
在这里插入图片描述
查询是否创建了
docker image
在这里插入图片描述

启动容器

[root@localhost homenet]# docker run -d -p 6001:6001 --restart=always --name hnyy-smw hnyy-smw:latest

挂载目录,映射容器内目录到宿主机,如文件下载、上传等
端口,宿主机与容器内端口号映射,容器内端口号要保证与Dockerfile文件内一致
自动重启,设置restart属性为always,防止宿主机或者docker重启后容器停止

查看程序是否正常运行

docker ps 或者 docker container ls

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值