docker入门系列之(四)——ASP.NET Core Web程序docker镜像制作


前言

本篇主要记录将ASP.NET Core Web工程发布为docker镜像的步骤,.Net Core非Web工程发布步骤与之相同。


一、添加Dockerfile文件

分以下两种情况:

1.对于已经建好的ASP.NET Core Web应用程序

直接在web项目上右键->添加->Docker支持,然后选择linux,会自动生成一个Dockerfile文件

2.对于新建的ASP.NET Core Web应用程序

直接在创建即将结束时勾选docker支持
由于自动生成的Dockerfile难以理解,且不一定能够编译通过,因此使用以下精简版Dockerfile,直接替换默认生成的Dockerfile文件内容即可

# 引入镜像,低版本 docker 去掉  AS base
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base

# 设置工作目录
WORKDIR /app

# 把目录下的内容都复制到当前目录下
COPY . .

# 暴露容器内部5000端口
EXPOSE 5000

# 设置时区(时区不对连不上数据库)
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone

# 运行镜像入口命令和可执行文件名称
ENTRYPOINT ["dotnet", "Service.Web.dll"]

注意:添加Dockerfile文件之后,记得将属性改为始终复制

二、发布

按照正常发布netcore工程的步骤发布即可,发布后public目录下会有一个Dockerfile文件。


三、打包为docker镜像

此处只记录在linux下打包过程,默认已经在linux上安装docker。

  1. 将发布文件夹public压缩为public.rar文件
  2. 拷贝到linux下/tmp目录
  3. 解压缩 sudo unrar x public.rar
  4. 创建镜像
    cd /tmp/public 
    sudo docker build -t webdocker .
注意:-t    tag 指镜像名称
           结尾必须加上点
  1. 所有步骤全都成功则打包镜像成功

四、运行容器

sudo docker images        # 查询当前镜像
sudo docker run  -p  5002:5000 --name [容器名]  --restart=always -d [镜像名/镜像id]

参数说明:
-p    5002:5000        			将容器内的5000端口映射为外部的5002端口
--name                    		容器名
-d                            	后台运行
--restart=always 				总是重启
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值