当 Docker 在 2013 年初为 Linux 容器带来了新的活力时,这项技术迅速在软件开发者中普及开来。如今,Docker 拥有数百万的容器下载量、数千名社区贡献者以及无数使用它的第三方项目。是什么解释了这种非凡的普及性呢?
已经有很多文章试图回答这个问题,描述 Docker 的特性和优点,主要是针对开发者。但是当涉及到普通用户甚至系统管理员时,我们仍然有一些疑问。在本文中,我尝试总结使用 Docker 对像我这样正在寻找将 Docker 与项目管理工具结合使用的人的主要优势。我专注于生产力软件,并收到很多关于软件安装的问题,而 Docker 可以简化软件安装。
我将重点介绍...
- OnlyOffice,一个面向企业的一体化解决方案,提供一套项目管理工具,包括甘特图,以及与 CRM、电子邮件、文档管理工具(带有在线编辑器)、日历等的集成。它有一个 公共自动化 Docker 仓库,拥有超过 10,000 次拉取。
- OpenProject,一个具有广泛功能和插件的项目管理工具。OpenProject 有 19 个不同的 Docker 仓库,最受欢迎的一个拥有超过 10,000 次拉取。
- Redmine,一个流行的项目管理和问题跟踪 Web 应用程序。Docker Hub 中有超过 180 个不同的 Redmine 仓库。最受欢迎的是 官方仓库,拥有超过 100,000 次拉取,以及 sameersbn 拥有的仓库,它也有类似的拉取次数。
#1. 节省时间
项目管理工具旨在贯穿项目的所有阶段,并帮助用户快速有效地实现他们的目标。因此,安装应该快速而简单。但有时,即使我们使用软件包而不是编译源代码,完成所有安装步骤也可能需要几个小时。这主要是因为这些工具需要一些额外的组件安装在机器上,而管理不同的版本可能很繁琐。
为了正确工作,OnlyOffice 需要 Mono 3.2 或更高版本、MySQL 5.6 或更高版本以及 nginx。OpenProject 的依赖项列表是:Ruby 2.1、Apache 或 nginx、Phusion Passenger 或 Unicorn 作为应用程序服务器、MySQL 5.6 或更高版本或 PostgreSQL 9.1 或更高版本作为数据库。要部署和运行 Redmine,我们需要为给定的 Redmine 版本安装至少 Ruby、一个受支持的数据库后端(MySQL、PostgreSQL、Microsoft SQL Server、SQLite 3)来存储数据,以及 Bundler 来管理 gem 依赖项。
这些依赖项本身也有很多依赖项。
当我们使用 Docker 镜像时,唯一需要安装的依赖项是 Docker 本身。然后,我们只需要执行一个命令即可部署所选的项目管理工具及其所有必要的依赖项。
#2. 避免依赖项错误
由于需要额外的组件,因此在安装和配置它们时可能会出现更多问题。Docker 减少了依赖项的数量,从而减少了可能发生的错误数量,特别是对于普通用户而言。
#3. 节省资源
为了确保项目管理工具正常工作,我们的机器必须满足开发者指定的所有系统要求。但现实情况是,我们机器的设置和环境可能与开发者用于编写和测试代码的机器不同。当然,我们可以使用“空”机器(或者在 OnlyOffice 的情况下使用两台机器,如果我们计划使用 在线文档编辑器)并尝试重现环境。无论花费多少时间,我们都将无法在这台机器上安装任何其他东西。或者,您可能会发现您需要聘请系统管理员或开发人员来重现必要的环境。
Docker 允许我们通过提供一种在容器中安全隔离运行应用程序的方式来最大限度地降低这些成本,从而允许我们在同一台机器上同时运行多个容器。
#4. 更快更轻松地更新
数据安全是人们喜欢开源和服务器解决方案而不是云解决方案的主要原因之一。而且,更新过程本身甚至比软件安装花费更多时间。
使用 Docker,更新过程变得更加容易。我们可以将数据存储在主机上(通过在 Docker run 命令中指定 -v 选项来挂载数据卷),并使用任何可用于此类目的的软件对其进行备份。然后,我们只需要删除当前容器、删除当前镜像,并使用相同的映射路径运行新镜像。总而言之,三个命令即可更新整个项目管理系统。
#5. 保持机器整洁
选择合适的项目管理工具可能需要一些时间。他们中的大多数都提供云版本供试用,例如 OnlyOffice 和 OpenProject。
Docker 允许我们在本地机器上测试工具集并评估其能力,而不会阻塞系统。我们无需搜索依赖项并逐个卸载它们,您可以使用一个命令卸载不合适的工具。
你为什么使用 Docker?
1 条评论