asp.net core docker部署

作者 : 慕源网 本文共2681个字,预计阅读时间需要7分钟 发布时间: 2022-01-25 共552人阅读

Docker 中的 ASP.NET Core 应用程序

Docker 是一个用于构建软件的开源容器化平台。在 Docker 中,应用程序与软件的所有依赖项一起放入容器中,这些依赖项被打包为Container Image。所以,简而言之,这意味着 Docker 包含容器,容器包含镜像。

那么它与 ASP.NET Core App 有什么关系呢?

假设您有一个想要在 Docker 上运行的 ASP.NET Core 应用程序。您将通过将您的应用程序与 Dot Net Core SDK(它是您的应用程序的依赖项)一起作为Container的镜像来实现这一点。所以现在你的 ASP.NET Core 应用程序将从容器中运行,它不需要:

  • 1. 在您的 PC 上安装点 NET core。
  • 2.你电脑中的操作系统,因为docker本身就是容器的操作系统。
  • 3. 应用程序具有的任何其他依赖项,因为一切都在容器映像中。

这听起来很棒,不是吗?

在下图中,我通过显示 3 个 docker 容器包含的 3 个镜像进行了解释。这些镜像可以是任何具有所有依赖项的程序,并且可以直接从容器中执行而无需其他任何东西。

Docker 对开发人员的好处

Docker为开发人员提供了很多好处:

  • 1. 应用程序的快速、简单和一致的交付。
  • 2. 应用程序的响应式开发和扩展。
  • 3. 降低应用程序的开发成本。

使用 Docker 快速、简单和一致地交付应用程序

由于保存在容器内的应用程序可以自行运行,因此开发人员可以直接在这些容器上工作。这对于持续集成和持续交付 (CI/CD) 工作流来说非常方便。

让我们用一个简单的例子来理解它。您组织中的两个人,居住在西雅图的开发人员 A 和居住在纽约的测试人员 B,正在开发 ASP.NET Core APP。这个应用程序完成了一项简单的任务,即提供在纳斯达克上市的股票的当前价值。该应用程序包含一个页面,用户可以在其中输入股票名称(例如 Microsoft)并通过单击按钮提交。然后,该应用程序调用一个外部 REST API 服务,该服务将返回股票的当前价格。

因此,这里发生的情况是,首先开发人员 A 在Docker Container中开发此应用程序,并将此容器运送给测试人员 B。运输不是通过 Post office 或 Fedex 进行的,因为容器本质上是虚拟的,因此它可以就像发送电子邮件一样通过互联网完成。

现在测试人员 B 收到这个容器后,从容器本身运行应用程序并进行一些测试。如果测试失败,则开发人员 A 必须修复它们。当所有测试都通过时,应用程序就可以在生产服务器上部署了。

最后,开发人员 A 将容器放在 Azure、AWS 或 Google Cloud 等云服务提供商上,该应用程序就可以为世界各地的人们使用。这就像自己泡茶一样简单。

使用 Docker 响应式开发和扩展应用程序

Docker 容器可以在任何地方运行,例如笔记本电脑、虚拟机、数据中心或云提供商。扩展应用程序或将其拆除也很容易。

例如,一个在 5 个容器中运行的应用程序突然变得非常流行并开始获得巨大的流量。因此,我们可以将容器增加到 10 个以满足其需求。以同样的方式,如果应用程序的流量变少,我们可以将容器从 5 个减少到仅 1 个。

使用 Docker 降低应用程序开发成本

Docker 是轻量级和快速的,它是基于虚拟机管理程序的虚拟机的一种经济高效的替代方案,因此可以节省您的资金。你也不需要在你的电脑上安装像 SQL Server 这样的付费软件,因为它们可以从 docker 容器本身运行。

例如,我可以从 Internet 下载 SQL Server 映像并将其放入 docker 容器中。现在我的 SQL Server 将从容器本身运行,我不需要在我的电脑上安装它。这使我免于购买它的许可费。

Docker架构

Docker架构是Client-Server类型,有Docker Client组件,也称为Docker CLI,还有Docker Server组件。Docker 服务器也被称为Docker 守护进程 (dockerd)。我们作为用户使用 docker 客户端与 daemon 进行通信,以执行诸如创建带有镜像的容器、拉取和推送镜像等任务。

Docker 守护进程执行繁重的任务,例如管理映像、容器、网络和卷。当我们在本地 PC 上安装 docker 时,Docker 客户端和守护程序都会安装在我们的本地 PC 上。

在 Azure 上部署应用程序时,我们使用安装在 PC 中的 docker 客户端与安装在 Azure 服务器上的守护程序连接,并指示它为我们执行操作。

Docker 中的镜像、容器和注册表

Docker Image包含应用程序及其依赖项。这些镜像通常基于其他镜像,例如我们可以拥有一个安装了 IIS 和 dot net SDK 的 ubuntu OS 镜像。然后我们在该镜像中也有我们的 ASP.NET Core 应用程序。

镜像包含在Docker Container中。您可以使用从 docker 客户端发送到守护程序的命令来创建、启动、停止、移动或删除容器。正如已经讨论过的,容器是自我维持的,也就是说——保存在镜像中的应用程序可以独立运行,而不需要来自外部世界的任何其他东西。

Docker Registry存储docker镜像。我们可以在本地电脑上创建一个 Docker 镜像,然后将镜像推送到 docker 注册表上。现在,一旦镜像存储在 docker 注册表中,其他人就可以从那里将该镜像拉到他们自己的本地 pc 中,并创建一个包含该镜像的 docker 容器。还记得我之前给出的集装箱派送示例(邮局、Fedex)吗?Docker Registry 适合在那里,交付或容器(或者正确地说是镜像的交付)由它提供支持。

两个著名的 Docker Registry 是:

Docker Hub 包含数百万个 docker 镜像,您可以将它们拉取到本地 PC 并使用它们来创建出色的应用程序。

在下面给出的镜像中,我说明了 docker 注册表的工作。

Docker 是构建应用程序的好方法,你会喜欢这个平台的。在接下来的系列教程中,我会从头到尾教你 docker。您将学习如何在 Docker 容器中创建 ASP.NET Core 应用程序并将它们发布到 Azure。

本教程是Docker系列ASP.NET Core 应用程序的一部分。


慕源网 » asp.net core docker部署

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录