Docker 和 Octopus Deploy 之间有什么区别

What are differences between Docker and Octopus Deploy

我使用 Octopus Deploy 有一段时间了,只是为了将 Web 应用程序部署到 AWS EC2 实例上。我知道 Octopus Deploy 是特定于 .NET 的,与 Docker 相比,学习曲线非常容易。我理解使用 Docker 的要点之一是创建容器而不是 运行 使用管理程序创建 VM。

但我的问题是使用 Docker 而不是章鱼部署的真正原因是什么?这更适合部署应用程序。他们做不同的事情吗?

好问题。他们做不同的事情,以不同的方式工作,但他们解决的问题有一些重叠。 Octopus 是关于运送构建的应用程序 - Docker 是关于将应用程序构建到一个独立的包中,您可以将其作为容器运送并 运行。

免责声明我是Docker船长(Docker's community recognition program) and I've been investing a lot of time in Docker. I'm biased towards it because I think it's fantastic tech - Octopus us great too, but the scope is smaller. If you want a broader overview of Docker, I talked about it recently on Channel 9

使用 Octopus,您可以获取已编译的 ASP.NET 网络应用程序并将其部署到您的服务器。使用 the Octopus Library 您可以使用模板来设置您的应用程序平台作为部署的一部分,配置 IIS,运行ning Windows 服务等。但是您的服务器需要已经设置的先决条件(.NET、IIS 等),他们需要安装 Octopus 代理才能 运行 部署,而你需要 Octopus 服务器来协调它。

使用 Docker,您可以获取已编译的 ASP.NET 网络应用程序并将其构建到图像中 - 这是包含整个应用程序堆栈的单个逻辑单元。该映像在一个单元中包含 IIS 和 ASP.NET、您的应用程序、您的应用程序的依赖项 及其所有配置。您可以将图像推送和拉取到 Docker 注册表(共享图像存储),并在任何 Windows 安装了 Docker 的机器上 运行 您的应用程序。您的主机不需要 IIS 或 ASP.NET 安装 - 它都在图像中,您不需要额外的基础设施,Docker 只是 运行 作为 Windows 服务在主机上。

Docker 运行您的应用程序,以及构建和发布它们。应用程序 运行 在容器中,这些容器是主机上的轻量级隔离沙箱。您可以让容器 运行ning 应用程序具有不同版本的 .NET、不同版本的 IIS,甚至不同版本的 Windows - 所有 运行ning 在同一主机上,而不会相互影响。

您可以将一个应用程序拆分为多个容器,它们可以在虚拟网络中相互访问,您可以使用 Docker Compose to define the parts and their relationship. You can cluster multiple hosts together into a Docker Swarm which gives you easy scaling, failover and rolling upgrades. And you can use the commercial Docker Datacenter 产品来捕获复杂的分布式解决方案来管理您的所有图像、主机和容器,以及安全访问这一切。