案例库 · 软件与 IT · 技术决策 · 2013–2020
Docker将应用与其环境打包,使其在任何地方运行一致
Docker将应用与其依赖打包进一个容器,容器共享宿主机内核,因此能在任何机器上一致运行。
Docker
那一手
软件常被诟病:在工程师的笔记本电脑上运行良好,一到生产环境就出问题,因为两台机器的库、运行时和设置总是不一致。传统的解决方法是虚拟机,通过打包整个操作系统来解决问题,但虚拟机体积大、启动慢。
Docker改变了交付单元。应用、其运行时、库和配置被打包成一个镜像,该镜像运行在容器中。容器共享宿主机的内核,并利用命名空间和控制组来实现应用隔离,因此不需要携带整个操作系统。
由于环境随应用一起移动,同一个镜像在开发、测试和生产环境中以相同方式运行,无论宿主机是什么。开发者可以将容器交给同事,并确信其运行效果与在自己手中完全一致。
这使容器轻量且快速,同时保持应用之间以及应用与宿主机之间的隔离,因此成为在机器间迁移软件的标准方式。
为什么管用
- 将依赖打包进镜像,消除了对宿主机已安装内容的猜测。
- 共享宿主机内核使容器比完整虚拟机小得多、启动更快。
- 命名空间和控制组提供了隔离,而无需为每个应用单独使用操作系统。
- 同一镜像保证开发、测试和生产环境中的行为一致。
值了多少将环境与应用一起交付聪明
可以搬走什么
当环境漂移时,将环境打包进制品——可重现性胜过承诺的可移植性。
后来呢
容器成为云原生软件的默认打包方式,镜像加编排的模式演变成支撑大部分网络服务的系统。Docker的理念——一个自包含、可重现的制品——使大规模部署变得可靠,并成为现代持续交付的基础。
资料来源
发现哪里写错了?告诉我们。