images像容器的blueprints。
包含存储在里面,但是并不是在里面运行,仅仅是在里面存储。
这些包括:
运行时环境(如特定的node版本)
应用代码
应用运行所需的依赖
额外配置(如环境变量)
指令
images也有自己的文件系统,独立于电脑。
images是只读的。一旦创建了image,不能被改变。
如果你想要改变images,你应该创建一个全新的image来包含这个变化。
容器是images的可运行的实例。
所以,我们创建一个image,是容器的blueprint。
当我们运行image的时候,它创建一个容器。
可以运行正是被image勾画出的应用。
它将有正确的运行时环境,image文件系统的访问权限,依赖等等。
所以,容器是一个进程,它运行被创建的image勾画出来的应用。
容器也被称为是隔离进程,也就是它独立于任何你电脑上其它进程运行,像是应用被运行在自己的盒子里,打包一切它需要在里面运行的。
运行image来创建container。
分享容器的image给需要运行这个应用的人。
他们运行image来生成一个container,来运行应用。
与什么版本安装在他们的电脑上无关,因为都预打包在image中了。