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

文章目录

  • 前言
  • 一、添加Dockerfile文件
    • 1.对于已经建好的ASP.NET Core Web应用程序
    • 2.对于新建的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 				总是重启

你可能感兴趣的:(❤【Docker】)