容器
在隔离环境下运行应用。
场景
开发应用所需要的Nodejs版本是一个特别的版本。
想要和组内的另一个人分享应用。
他们要先设置开发环境和自己的匹配,来确保他们的应用正确运行。
例如,他们要有和自己一样的Nodejs版本。
他们需要安装依赖,设置配置,环境变量,来确保所有以相同方式运行。
需要一个重要的设置过程,仅为了应用在另一台电脑上运行。
再思考相同的场景,多个应用,都需要设置自己特定的环境。
这些应用可能需要在多个不同的电脑上运行。
容器像一个盒子,包含所有应用运行需要的。
所有的源代码,依赖,正确的运行时环境,版本,等等。
容器可以脱离其它电脑上的进程孤立的运行我们的应用。
不管我们电脑上安装的node,python等是什么版本。
因为所有应用运行所需要的在容器中。
这就使得自己和组内的其他人。
不需要担心设置不同的版本,也不需要安装依赖,因为所有的都在容器中。
一个可预测的,一致的,孤立的环境。
我和其他人运行这些容器所需要的仅仅是Docker来管理这些容器。
这是Docker的核心。它是一个管理容器的工具。
提升应用部署到服务器上。这样就不用配置服务器,因为所有的配置和设置已经在容器中了。
虚拟机和容器的区别
虚拟机:有自己的内核完整的操作系统,运行在宿主机器上。
容器:共享宿主机器的操作系统内核,比虚拟机更加的轻量,没有那么臃肿。
启动更快,使用的内存更少。
容器包含一个瘦身版本的特定操作系统,但表面之下还是使用的宿主机器的内核。
本质上,容器比虚拟机更加的轻量,并且更快。
尽管,都可以解决相同的问题。