大家好,如果您还对windows下部署.netcore到docker不太了解,没有关系,今天就由本站为大家分享windows下部署.netcore到docker的知识,包括的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
1.一分钟了解Docker
Docker是一个基于Go语言、在Apache2.0协议下开源的开源应用容器引擎。 Docker 允许开发人员将他们的应用程序和依赖项打包到一个轻量级、可移植的容器中,然后将其发布到任何流行的Linux 机器上,这些机器也可以虚拟化。容器完全使用沙箱机制,相互之间没有任何接口(类似于iPhone应用程序)。更重要的是,容器的性能开销极低。
简而言之,容器就是封装应用服务的环境。它是一个轻量级的虚拟机。每个容器由一组特定的应用程序和必要的依赖库组成。
Docker与传统虚拟化最大的区别在于,容器在操作系统层面实现虚拟化,即直接复用本地主机的操作系统;而传统虚拟化是在硬件层面实现的,如VMware vShpere、Xen和Citrix等。
Docker采用客户端-服务器(C/S)架构模型,并使用远程API来管理和创建Docker容器。
Docker 容器是从Docker 镜像创建的。
容器和镜像之间的关系类似于面向对象编程中的对象和类。
Docker的架构如下图所示。 Client通过接口与Server进程通信来构建、运行和发布容器。客户端和服务器可以运行在同一个集群中,也可以跨主机进行远程通信。
具体详情请访问:《几张图帮你理解Docker基本原理及快速入门》
2.安装Docker
Windows 10下安装Docker Desktop for Windows,Windows 10之前版本安装Docker Toolbox。由于我当前的演示环境是Windows 8.1,所以下载Docker Toolbox。
适用于Windows 的Docker Desktop 是免费提供的。
需要Microsoft Windows 10 专业版或企业版64 位。对于以前的版本,请获取Docker Toolbox。
在安装Docker Toolbox之前,必须确保硬件虚拟化已开启。如果在windows 8.1中没有开启,则需要进入BIOS设置来开启虚拟化技术。 Windows 10网上的介绍是进入控制面板\所有控制面板项\程序和功能\打开或关闭Windows功能并勾选Hyper-v,但我没有尝试过。
后续安装过程中保持默认设置,但一定要勾选Setup-Docker Toolbox界面下的Select Another Tasks中的最后一项(Install VirtualBox with NDIS5 driver [default NDIS6])。
安装完成后,桌面上会生成三个快捷方式,分别是:
Docker Quickstart Terminal:提供Docker命令行操作Oracle VM VirtualBox:虚拟机软件。 Kitematic(Alpha):图形化泊坞窗工具。在使用Docker之前,必须先创建一台docker机器。它实际上是一个轻量级的Linux内核虚拟机,但是在使用它的时候,你甚至可能没有注意到它是虚拟的。只需双击打开Docker Quickstart Terminal,它就会自动安装docker machine。前提是你有梯子,否则会卡在安装boot2docker.iso这一步。如果你没有梯子,可以参考这里。
3、部署方案
3.1 添加Docker支持
打开上一篇文章中的项目并右键单击以添加Docker 支持。
3.2 编辑Dockerfile脚本
删除自动生成的DockerFile脚本,使用以下脚本:
#引入镜像,低版本dockerremoveASbase
#换阿里镜像
#FROMregistry.cn-hengdu.aliyuncs.com/jimlicatpub/aspnet:3.1-buster-slim AS基地
来自mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS 基础
#配置工作目录
工作目录/应用程序
#暴露容器端口。该端口与程序运行路径一致。你可以
曝光80
复制。
#ENV:配置系统环境变量,比如程序环境等都在这里配置(开发、预发布、线上环境)
#这里是配置程序运行端口。如果程序不使用默认的80端口,则必须在这里设置(程序运行端口)
ENVASPNETCORE_URLS http://+:80
#启动程序
ENTRYPOINT [‘dotnet’, ‘Riz.Web.dll’]
还要修改DockerFile 输出属性
3.3 发布程序
3.4 生成镜像文件
进入发布的目录,shift+右键-在此处打开命令。打开命令行并使用以下命令生成图像。请注意以下.无法删除。
#docker build -t imagename:version 。
#版本号可以省略,表示没有版本号(最后)
#有一个’.’命令后,不能省略。意思是当前目录。 br#riz.web是图片的名称,可以根据自己的需要修改。
docker build -t riz.web 。
完成后可以查看生成的图片。如果这里没有规避,拉取.net core镜像时可能会卡住。解决办法是使用docker-mcr加速镜像,按照其说明手动拉取镜像,然后运行docker build命令就ok了。
3.5 运行镜像
#https://www.runoob.com/docker/docker-run-command.html
#docker run -d -p 2000:80 –name 容器名称imagename:version
#-d表示后台运行
#-p:指定端口映射,格式为:主机(主机)端口:容器端口。例如配置2000:80,将外网的2000端口映射到docker的80端口。
#-name 指定容器的名称
#imagename:version 图像: 版本
#注意:如果你的服务器是阿里巴巴、腾讯、华为云等,配置的端口一定要在安全组配置中开放,比如下面的2000端口,否则无法访问。
docker run -d -p 2000:80 –name riz.web riz.web
如果运行后出现一串ID,则说明运行正常。 80是docker容器的端口,映射到本机的端口号2000。根据园子里的一些介绍文章,容器运行起来就万事大吉了。在浏览器中输入http://localhost:2000/即可看到运行效果。但我能做什么呢?它只是表明localhost 拒绝了我们的连接请求。是不是因为我的环境是win8.1,只有win 10 Hyper-V可以做到?如果哪位朋友在win10下可以直接输入localhost:端口并能运行成功,请留言告诉我,非常感谢。仔细想了想,localhost代表的是本地主机(host主机),所以站点的host应该是docker所在虚拟机的IP。 docker-machine ip默认,看到docker ip是192.168.99.100,在浏览器中输入http://192.168.99.100:2000/,运行效果立马就出来了~~
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/144228.html
用户评论
别伤我i
这篇文章讲解的很透彻!终于搞懂了如何在 Windows 下部署 .NET Core 到 Docker 的流程,之前一直一头雾水,现在可以安心开始项目了!
有7位网友表示赞同!
傲世九天
最近学了 Docker,想要尝试下用.NET Core 搭建一个微服务,这篇文档太棒了,解决了好多疑惑,感谢分享啊!不过在步骤6那里遇到一个小问题,不知道各位大佬有没有遇到过,报错说找不到某个文件……
有5位网友表示赞同!
那伤。眞美
Windows 下部署 .NET Core 到 Docker确实比较麻烦,很多教程都只针对Linux系统。幸好这篇文章详细讲解了配置和操作步骤,这下终于可以轻松开始使用了!
有10位网友表示赞同!
我的黑色迷你裙
docker 我懂的不多,.NET Core 就不是我的强项,这篇文档感觉有点难懂,希望以后能多一些针对初学者使用更通俗易懂的语言讲解。
有9位网友表示赞同!
浮世繁华
这个教程对新手来说太过于详细了,我以前就已经很熟悉.NET Core 和 Docker 了,没必要讲那么多基础知识吧?
有5位网友表示赞同!
我一个人
.NET Core 确实需要 Docker 来优化运行环境。这篇文档解释得非常明确,步骤也很清晰,强烈推荐给所有想学习 Windows 下 .NET Core 到 Docker 部署的学生和开发者!
有7位网友表示赞同!
千城暮雪
终于找到了一个完整的 Windows 环境下 .NET Core 到 Docker 的部署教程!之前总是遇到各种小问题找不到解决方法,现在跟着这个教程一步一步来,感觉非常可靠。谢谢分享!
有17位网友表示赞同!
﹏櫻之舞﹏
Windows 下部署.NET Core 到Docker 真的太麻烦了!各种环境配置和工具安装让人头疼,如果能够提供一个更直观、更简洁的操作指南就好了!
有5位网友表示赞同!
空谷幽兰
这篇文章还是很有帮助的,因为我遇到了不少和文档中描述问题一模一样的情况,按照文档步骤解决问题后,我的项目终于可以顺利部署到Docker中了!
有17位网友表示赞同!
花菲
文章写的不错,但图片质量有点差,有些细节看不清。希望能改进一下图文呈现的清晰度,更加方便读者理解。
有13位网友表示赞同!
暮光薄凉
学习了docker和.NET Core之后,我想把他们结合起来搭建一个应用。这篇文档讲解的很详细而且实用的,感谢作者分享!
有8位网友表示赞同!
若他只爱我。
.NET Core 的开发速度很快,Docker 作为容器技术可以很好的帮助我优化代码部署效率。这篇文章让我认识到.NET Core 和 Docker组合的力量!真是太棒了!
有20位网友表示赞同!
寒山远黛
文档里提到的工具软件有些我不熟悉,希望能够附上更详细的介绍和使用方法,以便新手也能轻松上手。
有15位网友表示赞同!
◆乱世梦红颜
用Windows 下 部署 .NET Core 到 Docker 之前我总是感到头疼,这个教程解决了我很大的问题!它清晰地解释了每一个步骤,而且图片很直观,操作起来非常容易。推荐给所有想学习的朋友!
有9位网友表示赞同!
残留の笑颜
.NET Core 和 Docker 的结合能够提升开发效率显著,这篇文档对我来说简直是救星!感谢作者对我的帮助!
有5位网友表示赞同!
拉扯
在 Windows 环境下部署 .NET Core 到 Docker 似乎是个不小的挑战,这个教程让我更加了解了其中的难点和解决方法。希望未来能学习到更高级的应用场景。
有17位网友表示赞同!
柠夏初开
这篇文章的文字风格非常适合我这种初学者阅读,每个步骤都解释得很详细,读完后感觉很有信心可以开始实践了!
有14位网友表示赞同!
隔壁阿不都
Windows 下部署 .NET Core 到 Docker 确实需要掌握一些技巧,这篇文档让我了解到.NET Core 的优势以及如何在 Docker 中发挥它的作用。非常感谢作者的讲解!
有7位网友表示赞同!
赋流云
这篇文章很实用,但我希望能够看到更多实例和案例,以便更直观地理解整个部署流程。
有18位网友表示赞同!