【问题标题】:Why use Docker for .NET web apps when we have WebDeploy?当我们拥有 WebDeploy 时,为什么要为 .NET Web 应用程序使用 Docker?
【发布时间】:2018-06-08 23:56:49
【问题描述】:

在 Microsoft 生态系统中,人们乐于使用 WebDeploy Packages 部署 Web 应用程序,直到 Docker 出现。突然间,每个人都开始更喜欢使用 Docker,articles being written 告诉如何将 Web 部署到 Docker 映像中。

我在这篇文章(和其他文章)中搜索了“为什么”这个词,但没有找到解释,让我推断答案只是“因为 Docker”。

我可能过于简单化了,但似乎 WebDeploy Packages 和 Docker 镜像的部署目的相似,我不清楚我为什么要采用完美的 WebDeploy Package 并将其放入 Docker 镜像中。我错过了什么?除了 WebDeploy 之外,Docker 还带来了哪些额外的好处?我什么时候应该选择一个而不是另一个,或者两者一起使用?

【问题讨论】:

  • WebDeploy 不能解决“在我的机器上工作”的问题。
  • 好点,WebDeploy 并没有直接解决这个问题。但是,如果您的开发和测试环境在 Azure 上,并且您的生产环境也是 Azure,那么单独使用 WebDeploy 可能就足以解决这个问题。
  • 有些人建议使用不同的 Docker 镜像进行开发、构建和生产。看来这可能会导致“我的形象工作”问题。 docs.microsoft.com/en-us/dotnet/core/docker/…

标签: docker msdeploy webdeploy


【解决方案1】:

docker 的一个功能是在一个叫做镜像的存档中记录一个执行环境。

这样,您不必在新机器上设置完全相同的配置,您可以简单地在任何支持 docker 的机器上运行所述映像,并且可能获得完全相同的环境执行(相同的 Windows,相同的 Webdeploy 版本,相同的 IIS,...)

WebDeploy Packages 是部署工件(如 jar、war 或任何其他工件),它不包括运行所述工件所需的内容。

一个 docker 镜像包括所有已经安装的,可以执行的。
您可以在运行时 (docker run) 使用相同的图像:

【讨论】:

  • 这正是docker的重点。它通过容器提供环境可移植性。如果没有完整的虚拟机映像,通常很难实现。
猜你喜欢
  • 1970-01-01
  • 2012-04-26
  • 2017-01-04
  • 2014-08-04
  • 1970-01-01
  • 1970-01-01
  • 2013-05-16
  • 1970-01-01
  • 2012-04-15
相关资源
最近更新 更多