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 测试完成 新版很给力 基本无需再做配置 直接使用即可.监控数据也比较全面