Docker是一个基于容器的平台,用于构建应用程序。它很快成为虚拟机(vm)的替代品。
dockddds与VMs类似,该平台通过将开发转移到测试环境而不是开发人员的本地计算机来简化开发。这确保了整个编程团队使用相同的测试环境和相同的配置。
虚拟机由几个层组成。
在底层,您拥有基础设施(硬件)。然后是主机服务器的操作系统(OS),接着是hypervisor(它创建一个模拟计算机),最后是包含应用程序的OS。您可以在一个虚拟机上创建多个操作系统,这允许开发团队使用不同的操作系统创建不同的环境。
另一方面,Docker容器具有不同的分层结构。主要区别在于它只有一个操作系统。Docker层的底部是基础设施,然后是主机的操作系统,然后是包含应用程序的容器引擎。这意味着,尽管Docker中的所有应用程序都是独立的,但它们共享操作系统的相同基本服务。
因为Docker不需要每个Docker容器都有一个操作系统,所以平台需要的内存更少,加载速度更快。Docker的优势使其成为最热门的新平台之一。如果你还没有尝试Docker,这六个好处可能会改变你的想法。
Docker最大的优点之一就是它有一个庞大的社区来支持它。这个平台是基于开源代码的,这意味着有一个社区的人都在投资支持Docker。这种社区支持产生了大量的材料资源来帮助你建立和运行。
相关:新程序员的10个最佳初学者项目
通过允许容器共享基本的内核函数,消除了许多不必要的操作系统开销。这可以在虚拟机所需的空间中容纳最多四倍的服务器应用程序实例。Docker也比VM更快,因为它不需要启动操作系统。
因为Docker非常轻,所以项目在服务器上占用的空间更少。更多的数据和软件可以存储在更少的空间里。您甚至可以指定每个容器可以使用多少资源(CPU、网络、内存等)。另外,容器可以调整大小以满足应用程序增长时的需要。这使得应用程序比vm上的应用程序具有更好的可伸缩性,vm很难调整大小。
启动一个新的应用程序却发现它不能与用户的配置一起工作,这可能会令人沮丧。Docker解决了这个问题。每个容器都是独立的,在Linux内核上运行。只要最终用户可以运行容器,容器在他们的计算机上的运行方式将与在您的计算机上完全相同。
一致部署还允许开发人员轻松地共享他们的代码。Docker容器的可移植性确保开发人员在相同的环境中使用相同的代码,并且对每个人都运行相同的代码。
Docker的一个重要特性是其内置的版本控制。Docker中的文件称为图像。每个图像文件由图像层组成。每次运行命令时,都会在图像中创建一个新层。因此,对代码的更改将自动保存为图像文件中的层。图像层本质上是将更改日志构建到图像文件中。在任何时候,图像都可以还原回以前的图像。
在版本之间快速更改的能力支持快速测试。测试时,如果需要,可以使用早期图像进行更改并快速恢复。对于使用迭代设计周期的开发人员来说,这是一个很好的特性。
相关:什么是Git?如果您是开发人员,为什么要使用版本控制
微服务已经成为单片系统的流行替代品。微服务的目的是将大型应用程序分解为运行单个功能的较小单元。服务可以相互通信并一起构成应用程序。这种方法的好处是每个特性都是独立的,这意味着开发人员可以独立地开发和维护这些特性,并允许开发人员为每个服务组建敏捷团队。
Docker的容器系统很好地映射到了微服务模型。每个容器都是独立的,很像一个微服务。微服务的一个好处是维护和更新更容易管理。每个特性都可以独立地更新或调试,而无需维护整个系统。服务的隔离有助于提高系统的抗故障能力;如果一个服务失败,整个系统不会崩溃。
Docker是一个很好的解决方案,适用于以下项目:
尽管您可以将Docker用于许多不同的应用程序开发项目,但它对分布式团队最有好处。它解决了在不同计算机上工作时出现的许多问题。
我们已经讨论了许多您应该考虑使用Docker的原因。许多公司已经开始使用Docker来利用它的许多优点。
如果你有兴趣了解更多,有很多很好的资源让你开始上网。Docker甚至在他们的网站上提供了一个实验室环境,它不需要你下载软件,所以你可以在提交前试用Docker。
... Docker—有用的虚拟化软件 乳齿象——社交网络本身 Nginx(发音为EngineX)——多用途web服务器软件,在本例中用作反向代理 ...
...用程序都在容器中运行。虽然虚拟机(VM)和容器都使用虚拟化方法,但容器是不同的。与VMs不同,容器使用与主机相同的操作系统内核。由于容器化应用程序和主机使用相同的内核,因此容器部署可以从提高效率中获益。在虚...
... 但是,还有其他几个Windows默认文件和文件夹您应该单独使用。弄乱这些可能会导致系统不稳定、数据丢失或其他可怕的后果。让我们来讨论一下大多数用户在通过Windows文件系统进行访问时不应该弄乱的地方。 ...
...运行的程序。对于公司服务器,这意味着攻击者可能无法使用受损的web服务器访问包含客户数据的数据库。 ...
...,双引导意味着对硬件组件的访问更多,一般来说,它比使用虚拟机更快。虚拟机通常是系统密集型的,因此在虚拟机中运行Linux或Windows需要非常强大的规范才能获得良好的性能。 ...
...一步实现这一点。在这种模式下,您无法获得标准的完全虚拟化桌面。相反,Windows在后台运行,而只显示通过并行运行的应用程序。如果你只需要运行一个只在Windows上运行的关键应用程序,这是很方便的。 ...
... 虚拟机运行在虚拟化软件上,虚拟化软件创建了一个虚拟硬件环境。简单来说,创建虚拟机时,虚拟化软件会指定硬件(通常带有用户输入)。 ...
...系统中的Linux内核似乎并不太重要。毕竟,如果你已经在使用Windows,为什么还要用Linux呢? ...