Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Docker和Octopus部署有什么区别_.net_Docker_Web Deployment_Octopus Deploy_Docker Container - Fatal编程技术网

.net Docker和Octopus部署有什么区别

.net Docker和Octopus部署有什么区别,.net,docker,web-deployment,octopus-deploy,docker-container,.net,Docker,Web Deployment,Octopus Deploy,Docker Container,我使用Octopus Deploy已经有一段时间了,只是为了将web应用程序部署到AWS EC2实例上。我知道Octopus部署是针对.NET的,与Docker相比,学习曲线非常简单。我理解使用Docker的一个要点是创建容器,而不是使用Hyperviser来创建VM 但我的问题是,使用Docker而不是章鱼部署的真正原因是什么?哪个更适合部署应用程序。他们做不同的事情吗 好问题。他们做不同的事情,以不同的方式工作,但他们解决的问题有一些重叠。Octopus是关于发布一个构建的应用程序——Doc

我使用Octopus Deploy已经有一段时间了,只是为了将web应用程序部署到AWS EC2实例上。我知道Octopus部署是针对.NET的,与Docker相比,学习曲线非常简单。我理解使用Docker的一个要点是创建容器,而不是使用Hyperviser来创建VM


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

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

免责声明:我是码头工人队长(),我在码头工人身上投入了很多时间。我倾向于它,因为我认为它是很棒的科技-章鱼我们也很棒,但范围更小。如果您想更全面地了解Docker

使用八达通,您可以获取一个已编译的ASP.NET web应用程序,并将其部署到您的服务器上。使用您可以使用模板作为部署的一部分来设置应用程序平台、配置IIS、运行Windows服务等。但您的服务器需要已设置的先决条件(.NET、IIS等),它们需要安装八达通代理才能运行部署,并且您需要八达通服务器来协调部署

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

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


您可以将一个应用程序拆分为多个容器,它们都可以在虚拟网络中相互访问,您还可以使用来捕获复杂的分布式解决方案,以定义各个部分及其关系。您可以将多台主机群集到一个服务器中,这样可以方便地进行扩展、故障切换和滚动升级。您还可以使用该商业产品来管理您的所有图像、主机和容器,并确保对它们的访问安全。

哇,感谢您提供了非常详细的答案!。。我想我现在是一个码头工人爱好者,因为我读到了这篇文章。因此,基本上重申一下,我不需要在服务器上手动安装所有项目依赖项,如IIS、ASP.Net等,而是将这些依赖项放在一个映像上,然后该映像可以推送到注册表,我可以在任何服务器上使用此映像。。。我想这样做的好处是,我不必再在新服务器上安装所有依赖项,因为我想将我的应用程序推到新服务器上。是的。对于Docker,您的基础架构要求是(机器+网络+Docker)。您可以对图像使用Docker Hub,这是一个公共注册表,或者在本地运行您自己的注册表。好吧,我的问题是,对于CI之类的问题,在提交后在Teamcity中运行我的构建和单元测试,这是否意味着,我将不得不做这件事,从单独的,然后建立应用程序再次进入docker容器和部署容器?对我来说,通常的过程是编写代码、提交、在teamcity中构建、在teamcity中运行测试、使用octopack创建包、使用octopus部署包。。。但如果你说Docker提供的是一个编译版本,那就意味着我必须在将应用程序放入容器进行装运之前完成所有这些步骤?正确,你仍然像以前一样在TeamCity中进行所有预包装。感谢这个(旧)解释。本周参加了哥本哈根的DockerCon,观看了您的演讲,并在“使用Docker”轨道上花费了大量时间。我们还大量使用八达通,并将我们的部署精简到这里。但我从来没跟你说过Docker是否可以完全取代章鱼之类的东西。。从长远来看,这似乎是最有价值的方法。