本文概述
了解Docker容器
Docker是一种使用容器的工具, 可简化应用程序的创建, 部署和运行。
它将应用程序以及所有其他元素(如外部库和其他此类依赖项)封装在一起, 这些元素是将应用程序顺利运行到单个程序包中所必需的。
这使应用程序可以在任何Linux机器上运行, 而与机器的自定义设置无关, 该自定义设置可能与在其上进行编码和测试的机器不同。
它是一个开放源代码, 这意味着任何人都可以添加功能部件来满足他们的需求, 从而为改进工具做出贡献。
这些工具的设计使其可以进入DevOps生态系统。它通过帮助开发人员仅专注于开发而不关心代码将在其上运行的系统来帮助开发人员。
他们可以使用已经设计为在Docker上运行的几种程序之一作为其应用程序的模板。 Docker使IT运营团队能够建立一个环境, 该环境可以复制生产服务器, 并使每个人都可以使用相同的设置来处理项目, 而无论本地环境如何。
Docker虽然在某种程度上与虚拟机非常相似, 但是与虚拟机不同, 它没有完整的操作系统。
Docker利用托管在其上的系统的Linux内核, 只需要打包应用程序及其依赖项即可。通过使用更少的资源, 这可以显着减小程序包的大小并提高性能。
采用Docker的公司
几个企业级组织以不同的方式使用Docker。
GE的初始应用程序开发实践完全是手动的, 由于几次错误, 返工和对应用程序的审查, 从开发到生产平均需要6周的时间。
由于人工干预, 没有可重复性。通过采用Docker解决了该问题, 该方法在多种方面更易于使用和高度可移植性, 使它能够一次构建并在任何环境中运行。
以前, 他们使用VMware允许在VM中运行一个应用程序, 但是使用Docker, 现在每个容器平均可以在14个应用程序上运行。
PayPal使用Docker的商业解决方案;这不仅使开发人员能够提高生产力和敏捷性, 还使基础架构团队能够提高成本效益。
BBC新闻提供在线新闻, 其中每天有超过80000个英文新闻。它按顺序方式在不同的集成环境中运行了26000多个作业, 这将导致每个作业大约60分钟的等待时间。
Docker通过允许作业并行运行, 消除了BBC的时间延迟问题。它为开发人员提供了持续集成的灵活性, 从而解决了速度和体积的根本问题。
迁移到Docker极大地帮助了Lyft在独立测试和部署功能以及微服务之间的流畅交互方面。
持续集成使开发和交付更加高效, 快捷。
包括Business Insider, Groupon, Yelp, ADP, eBay, Expedia, Spotify, 《纽约时报》, 牛津大学出版社, PayPal, Shopify, 《华盛顿邮报》, Uber等其他组织在内的其他组织也已经探索并采用了Docker IT基础设施。
常见的Docker用例
配置简化:Docker可以借助其配置在任何平台上运行, 而无需虚拟机的实际开销。
它允许你将配置文件放入代码中, 并传递环境变量以适应不同的环境。因此, 一个泊坞窗映像可以在不同的环境中使用。
代码管理:代码从开发到生产的过程都经过不同的环境。
每个环境都比其他环境略有变化。 Docker通过提供一致的环境来消除这种差异, 从而使开发和编码更加舒适。
Docker映像是不可变的, 它们具有从开发到生产的应用程序环境零变化的优势。
提高开发效率:开发生态系统中的两个基本目标是使开发环境尽可能地接近生产环境, 而下一个目标是尽快交付质量代码。
Docker允许代码在反映生产环境的容器中运行, 并且与VM不同, Docker具有较小的开销内存容量, 这有助于运行多个服务。
另一个目标得以实现, 因为我们使用Docker的共享卷将应用程序代码从主机提供给容器。这使开发人员可以从其平台和编辑器中编辑源代码, 这将反映Docker内部正在运行的环境。
应用程序隔离:在某些情况下, 可能需要应用程序隔离, 例如需要不同apache和不同依赖集的API服务器。
在不同容器下运行API服务器是更好的出路。
调试功能:Docker提供了许多与容器配合使用的工具, 能够在容器以及不同的容器中插入检查点, 这在测试应用程序时非常重要。
快速部署:可以快速创建Docker容器, 这是因为容器不启动操作系统而是仅运行应用程序。
一旦设置, 它们使你安心, 一旦代码工作了, 它将在所有环境中工作。
Docker以其巨大的优势正在成为IT基础架构的宝贵补充。
如果你是系统管理员或有兴趣学习此热门技术以促进职业发展, 我建议你参加Docker Mastery在线课程。
评论前必须登录!
注册