
如果您是一名开发人员,或者只是一个沉浸在IT世界中的人,那么您可能听说过Docker。
Docker是一个工具,它通过更容易地使用容器来帮助创建、部署和运行应用程序。此工具非常强大,因为它允许开发人员将应用程序与所需的所有部分(如库和其他依赖项)打包在一起,并将其作为单个包部署。
因此,开发人员可以放心,应用程序将在任何其他Linux机器上运行,无论该机器可能有什么自定义设置。
所以,看看下面,了解更多关于Docker的信息。
记住,不管你是为财务、旅行等创建一个应用程序,还是为管理WordPress站点或类似的东西创建一个应用程序,你肯定需要强大的工具。
当然,Docker就是其中一种工具。
谁使用码头工人?
Docker是一个为开发人员和系统管理员设计的工具。这使得它成为许多DevOps(开发人员和操作)工具链中相当重要的一部分。
由于Docker,开发人员可以专注于编写代码,而不必担心最终将在其上运行的系统。
这个工具还允许他们优势时使用一个时间的成千上万的项目已经设计运行在一个码头工人容器作为应用程序的一部分,这是在其他方面,码头工人容器托管的原因之一是一个热门话题。
当涉及到操作人员时,该工具提供了灵活性,并可能减少所需的系统数量,因为它占用的空间较小,开销也较低。
码头工人的好处
容器的工作方式在某种程度上类似于vm的工作方式。但是,让我们以更具体的方式来看待它。
容器将单个应用程序及其依赖项(应用程序运行所需的所有外部软件库)与底层操作系统和其他容器隔离开来。
所有的容器化应用程序都共享一个单一的、通用的操作系统(Linux或Windows),但是它们彼此隔离,并且与整个系统隔离。
现在,看看Docker和容器的一些主要优点。
- Docker允许更快的软件交付周期
企业软件必须快速响应变化的条件。换句话说,满足需求的简单扩展和根据业务需求添加新特性的简单更新都是必要的。
Docker容器使快速地将具有新业务功能的新版本软件投入生产变得很容易——如果需要,还可以快速地返回到以前的版本。它们还使实施蓝/绿部署等战略变得更容易。
- Docker能够充分利用系统资源
容器化应用程序比虚拟机占用的内存少得多。它们的启动和停止速度更快,并且可以在主机硬件上进行更密集的打包。因此,所有这些都有助于减少花费。
节省的成本将根据所使用的应用程序和它们的资源密集程度而有所不同,但是容器总是比vm更有效。
还可以节省软件许可证的成本,因为运行相同的工作负载需要更少的操作系统实例。
- Docker允许应用程序的可移植性
在哪里运行企业应用程序非常重要。如果您在防火墙后运行它,这很重要,因为您希望在您的附近保持一切安全。
但是,为了方便公共访问和资源的高弹性,也可以将其放在公共云中。
Docker容器封装了应用程序运行所需的所有东西(并且只封装那些东西),它们允许应用程序在不同环境之间轻松切换。
安装了Docker运行时的任何主机——开发人员的笔记本电脑或公共云实例——都可以运行Docker容器。
-微服务的Docker
由于Docker容器是轻量级的、可移植的和自包含的,所以更容易按照前瞻性的思路构建软件,这样您就不必试图用过去的开发方法来解决未来的问题。
容器简化的软件模式之一是微服务,其中的应用程序由许多松散耦合的组件组成。
通过将传统的单块应用程序分解为单独的服务,微服务允许对业务线应用程序的不同部分分别进行伸缩、修改和服务——由单独的团队执行,如果满足业务需求,还可以在单独的时间轴上执行。
容器不需要实现微服务,但是它们通常非常适合微服务方法和敏捷开发过程。
Docker的缺点(Docker不能做的事情)
现在您已经了解了Docker容器的更突出的优点,让我们看看这些容器不能做什么。
- Docker不能解决安全问题
默认情况下,容器中的软件可能比在裸机上运行的软件更安全,但这有点荒谬。很明显,一个所有的门都锁着的房子比一个所有的门都开着的房子要安全得多,对吧?
这并不能说明附近的情况,也不能说明小偷会寻找的贵重物品是否可见,也不能说明住在那里的人的日常生活,等等。
容器可以为应用程序添加一层安全层,但仅作为在上下文中保护应用程序的一般程序的一部分。记住那件事!
- Docker不能代替虚拟机
有一个巨大的误解,认为容器实际上使虚拟机过时了。
许多过去在VM中运行的应用程序可以移动到一个容器中,但这并不意味着它们可以或应该全部移动。
例如,如果您所在的行业有严格的监管要求,您可能无法将容器替换为vm,因为vm比容器提供了更多的隔离。
- Docker不能奇迹般地把应用转换成微服务
如果您包含一个现有的应用程序,那么可以减少它的资源消耗并使其更容易部署。但这并不一定会改变应用程序的设计,或者它与其他应用程序的交互方式。
这些好处只是开发人员努力工作的结果,而不是强制要求将所有东西都移到容器中。将一个老式的单片或soa风格的应用程序放入容器中,您最终将得到一个容器中的旧应用程序。
这并没有使它对你的工作更有用。它实际上使它变得不那么有用了。
最终的想法
可以肯定地说,企业开发工作是出了名的墨守成规,在面对变化时反应迟钝。
在企业级软件上工作的开发人员必须一直处理这些约束。IT部门对他们施加了一些限制,他们的公司也提出了一些要求。
Docker和容器为开发人员提供了更多需要的自由。但与此同时,它们也为开发人员提供了构建业务应用程序的新方法,这些业务应用程序可以快速响应注定要改变的业务条件。
