.net core 控制台程序在linux中发布到docker

业务背景

上次的邮件工具写完之后,需要发布到公司服务器上的docker运行,于是我又学习了docker,以下是一些心得。

推荐工具

一开始是用的power shell连接服务器,后面因为要上传文件,所以推荐一个小工具叫electerm,也可以用其他工具这个不影响什么,以下是下载地址。
阿里云网盘地址

Docker安装

docker的安装我这里就不详述了,其他博客很详细,但是要注意docker版本,不然很容易造成dockerfile生成失败,之前我下的是12.0.1版本dockerfile报错,后面同事帮我下的最新的就OK了,这里我也指一个链接给你们学习,很详细。
Docker入门

正文

  1. 先用electerm或其他工具把源码丢进服务器。
    在服务器的目录
  2. 用cd [文件名] 进入到源码根目录,例如:cd sendmail。
    源码根目录
  3. 在根目录建一个dockerfile,这里建议在本地环境就建好再丢进去,不过用工具也可以直接改。
    ps:dockerfile实质上就是脚本命令,如果大家实在不知道咋写的话,可以直接把以下代码sendmail换成你们的项目名即可,不过是建立在你没有在外面打包,直接在linux上打包可以用下面的代码。因为我是新手有些理解可能不太对,不好在这解释,建议去上面推荐的博客理解,我这里只是演示追求打通即可。
FROM mcr.microsoft.com/dotnet/runtime:5.0-focal AS base
WORKDIR /app

FROM mcr.microsoft.com/dotnet/sdk:5.0-focal AS build
WORKDIR /src
COPY ["sendmail/sendmail.csproj", "sendmail/"]
RUN dotnet restore "sendmail/sendmail.csproj"
COPY . .
WORKDIR "/src/sendmail"
RUN dotnet build "sendmail.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "sendmail.csproj" -c Release -o /app/publish 

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "sendmail.dll"]


要配环境变量则需要加
#环境变量 (#表示注释)
写法一:ENV strMailFrom=xxxx@qq.com
写法二:ENV strMailFrom xxxx@qq.com
4. cd /root/gct.sendmail进入根目录,dockerfile最好要放在根目录,不然后面的操作可能会导致找不到文件,这里的路径要看你们自己的路径,这里只是参照。
5. 创建镜像
docker build -f [docker文件名称] -t [镜像文件名:版本]
docker build -f Dockerfile -t sendmail:v1 .
6. 查看镜像
docker images
在这里插入图片描述

7.运行镜像,在运行的时候会自动创建容器,如果已经运行过想删除需要先删除容器
docker run sendmail:v1
在这里插入图片描述
8. 查看容器
docker ps -a
在这里插入图片描述
9. 运行容器
docker run -i -t [容器名称:版本]
docker run -i -t sendmail:v1
10. 删除容器
docker rm 容器id
11. 删除镜像
docker rmi 镜像id或容器名称:版本

尾声

入门最基础的步骤就是这些啦,每一次改文件都需要重新执行一次生成镜像哦。

版权声明

博客园FaceMan与CSDN中的FaceMan0814为同一人,转载请注明出处。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值