asp.net html容器,Docker容器运行ASP.NET Core

本篇先介绍下使用docker运行asp.net core应用。

一、新建asp.net core应用

这里新建了一个myWebApp的asp.net core的应用。

ddd441a2cdb312e08583cdcc2b1381f8.png

二、添加docker支持

添加docker支持有两种方式,一是在新建项目时设置启用docker支持,二是在已创建的项目上右键->添加->docker支持。

3a796272b3cceb90988cbfee63df7758.png

b388bdeeab091fe6998fc359cb9a6f98.png

同时需要选择是window平台还是linux平台,如果是window系统就需要设置window平台,同时docker也需要设置为window containers。如下图报image operating system "windows" cannot be used on this platform错误,就是由于选择的平台不对。

d2ef6b22e47b3f1fb6c841c7f3e019cf.png

07e2ac5a8e4441fc7b97addc89ca4327.png

c88b4a5bf5b4d22f3af8451a9cbdb56f.png

三、创建docker镜像

添加docker支持后会自动生成dockerfile文件,这里有一个坑,在COPY ["myWebApp/myWebApp.csproj", "myWebApp/"]行中需要注意是myWebApp/myWebApp.csproj,是myWebApp目录下的myWebApp.csproj工程文件,所以需要把创建好的dockerfile拷贝到工程文件目录下。

#Depending on the operating system of the host machines(s) that will build or run the containers, the image specified in the FROM statement may need to be changed.

#For more information, please see https://aka.ms/containercompat

FROM microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-sac2016 AS base

WORKDIR /app

EXPOSE 80

FROM microsoft/dotnet:2.2-sdk-nanoserver-sac2016 AS build

WORKDIR /src

COPY ["myWebApp/myWebApp.csproj", "myWebApp/"]

RUN dotnet restore "myWebApp/myWebApp.csproj"

COPY . .

WORKDIR "/src/myWebApp"

RUN dotnet build "myWebApp.csproj" -c Release -o /app

FROM build AS publish

RUN dotnet publish "myWebApp.csproj" -c Release -o /app

FROM base AS final

WORKDIR /app

COPY --from=publish /app .

ENTRYPOINT ["dotnet", "myWebApp.dll"]

032760ccf5a5af6aa85bf702bc7993f1.png

在项目目录下使用docker命令build生成docker镜像,docker build -t aspnetdemo .,(aspnetdemo后面有个.,表示dockerfile路径)。这里build了一个aspnetdemo的镜像,由于首次运行dockerfile,一些.net core基础镜像需要下载,而且家里网速也比较慢,下载的过程等了好久。

304b2c4628a42f407fcd0f29443881a3.png

9619f0cc2498d2a219e9c423a0fc4262.png

四、启动容器

在第三步镜像已经创建完成,使用docker images可以看到已创建好的镜像,然后就是使用docker run启动容器运行.net core应用。

510f263eb7771f98fba017b2b8b7f01f.png

在浏览器中山输入http://localhost:8080/,可以看到如下页面。

739e263ee43c30475addf1a1fd52edcd.png

微软官方文档写使用 Windows 容器时,必须直接在浏览器中转到容器 IP 地址,这里使用了-p映射了端口,所以直接输入http://localhost:8080/是可以访问的。

0e915f5769079b75182d199d214081a1.png

下面使用ipconfig查找容器映射的docker的ip,然后在浏览器输入docker的ip也是可以访问。

1fcc6d382803f8f2051b9faf325e3a45.png

00a1287a65e4481e2c656484d569c0d0.png

五、小结

本篇只是简单介绍了docker部署asp.net core应用,.后续net core可能会连数据库、redis等容器,那样就涉及到容器互联,容器编排技术以及devops持续集成,往后扩展又可以扩展好多,这些以后慢慢学。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值