ASP.Net Core 发布到 Windows Docker

新版Docker for windows 使用WIN10新的WSL2 进行docker操作比之前的版本更加成熟简单,甚至可以和VS进行联调测试了 很方便

1.安装新版docker desktop20

2.和发布到centos 一样 我们先把项目文件编译并发布到本地目录,由于是在windows当前主机上的docker发布 所以无需再上传

由于生成的默认dockerfile 包含了编译代码部分需要和centos一样处理下 注意这次我们版本使用的net5.0 所以镜像路径有所变化

FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /app  
COPY . .
EXPOSE 7012
ENTRYPOINT ["dotnet", "ShopX.Supplier.Api.dll"]

翻译过来就是直接把文件拷贝到 docker  运行目录为 /app   端口为7012  启动程序为

ShopX.Supplier.Api.dll

注意这个端口要和程序的运行端口保持一致

3.在发布后的目录下运行cmd 启动命令行模式

按顺序执行下面的2个指令,生成镜像并启动容器 这两部和centos操作是一样的

#根据当前目录文件生成 docker image 名字为 shopx-supplierapi
docker build -t  shopx-supplierapi .


#根据image启动一个容器 并映射端口为7012
docker run --name=supplierapi -p 7012:7012  -d shopx-supplierapi

效果如下

通过docker images 和docker ps 指令可以看到镜像和容器对象 说明二者已经启动并运行

 

 其实在docker destop中也能看到这些镜像和容器

新版docker desktop 容器和镜像以及运行状态都可以显示在桌面上操作无需再使用指令,Desktop 操作界面:

1.镜像列表:如图右侧给出了列表可操作项可删除或者运行

 2.容器列表:如下图所示可以对容器进行启动停止删除等操作 web程序也可以自动打开浏览器访问 非常方便

而且CLI指令也能自动执行:如下所示可以直接进入容器目录非常方便

现在我们直接在主机上访问7012接口测试下:ok 可以正常访问了

接口数据也是正常的.数据库连接的是局域网中的另一台说明windows docker 容器可以 直接和宿主机一样访问同局域网内的机器, IP一致,无需另外设置,猜测网络连接模式是host模式 和主机共用IP

在容器详情页面还有logs stats页面可供查看

 日志页面:

 连日志信息输出也能看到

 INSPECT

 CPU 内存:

至此windows docker 测试完成 新版很给力 基本无需再做配置 直接使用即可.监控数据也比较全面

原文地址:https://www.cnblogs.com/merray/p/15111848.html