最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

Windows下使用docker部署.Net Core 全球今热点

来源:博客园

前言

Docker 是一个开源的应用容器引擎,它十分火热,如今几乎成为了后端开发人员必须掌握的一项技能。即使你在生产环境中可能用不上它,就算把它当作一个辅助开发的工具来使用,也是非常方便的。

安装及配置

下载安装

官网下载:https://www.docker.com/get-started


(资料图片)

配置镜像加速

国内网络必须配置镜像加速,不然镜像几乎无法下载。

"registry-mirrors": [ "https://registry.docker-cn.com", "https://dockerproxy.com", "https://hub-mirror.c.163.com", "https://mirror.baidubce.com", "https://ccr.ccs.tencentyun.com" ]

配置镜像存储路径

默认docker的运行文件是在C盘,C盘空间不够的话,可以设置到别的盘。

新版本的windows Docker Desktop默认使用wsl运行,文件位置都只能由WSL管理:

如果是老版本Hyper-V,可以通过界面设置。更多信息可参照:win10使用WSL 2运行Docker Desktop,运行文件从C盘迁移到其他目录 - xhznl - 博客园 (cnblogs.com)

docker基本概念、基础命令可参照:.Net Core in Docker极简入门(上篇) - xhznl - 博客园 (cnblogs.com)

.net core部署到docker

项目添加docker支持

右键项目-添加-Docker支持,目标OS选择Linux,项目自动创建Dockerfile文件。

文件内容主要是通过.net core cli命令来定义了一系列打包发布运行的过程。

#使用asp.net 6作为基础镜像,起一个别名为baseFROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base#设置工作目录为/appWORKDIR /app#暴露80和443端口EXPOSE 80EXPOSE 443#使用dotnet 6作为基础镜像,起一个别名为buildFROM mcr.microsoft.com/dotnet/sdk:6.0 AS build#设置工作目录为/srcWORKDIR /src#复制WebApp/WebApp.csproj到/src/WebApp/目录下COPY ["WebApp/WebApp.csproj", "WebApp/"]#运行dotnet restore命令,还原依赖包RUN dotnet restore "WebApp/WebApp.csproj"#复制WebApp目录下的所有文件到/src/WebApp/目录下COPY . .#设置工作目录为/src/WebApp/目录下WORKDIR "/src/WebApp"#运行dotnet build命令,编译项目RUN dotnet build "WebApp.csproj" -c Release -o /app/build#使用build作为基础镜像,起一个别名为publishFROM build AS publish#运行dotnet publish命令,发布项目RUN dotnet publish "WebApp.csproj" -c Release -o /app/publish /p:UseAppHost=false#使用base作为基础镜像,起一个别名为finalFROM base AS final#设置工作目录为/appWORKDIR /app#复制publish目录下的所有文件到/app/目录下COPY --from=publish /app/publish .#设置环境变量ASPNETCORE_URLS为http://+:80ENTRYPOINT ["dotnet", "WebApp.dll"]

构建镜像

在项目根目录启动powershell或cmd窗口来执行docker命令

执行构建命令:docker build -t testpub -f ./WebApp/Dockerfile .

注意:参数-f是指定Dockerfile所在的目录;注意大小写。

使用docker images可以看到打包成功的镜像

启动容器

执行命令:docker run -d -p 5000:80 --name mytestpub1 testpub

返回容器id说明执行成功

查看运行的容器:docker ps

打开浏览器可以正常访问

至此,一个简单的asp.net core web应用就成功运行于docker之中。

也可以利用vs的功能完成前面所有的步骤:在创建完dockerfile文件之后,选择在vs上选择docker运行,vs会自动创建镜像和容器。

关键词: