容器简介



一个image是一个轻量级的,独立的可以执行的包,这个包包含了执行一段代码所需要的所有环境,包括代码,运行时的变量和库,还有一些其它的配置文件。


一个container是一个image执行的实例,即一个image执行后在内存中保存的实例。它完全独立于主机的环境,仅仅是读取主机中的文件或者端口。container只是在主机的内核中执行应用。它比虚拟机有更好的性能,虚拟机通过计算机的管理程序来保证应用的执行。container直接使用本地的资源,每一个任务都使用一个单独的进程,不会比其他的运行花费更多其它的资源。


容器和虚拟机的对比


虚拟机


同时安装docker和containerd docker container 区别_配置环境


对于虚拟机来说,在管理程序执行不同的OS


虚拟机是针对同台计算机上安装有许多操作系统内核,对于不同的OS,它们都有自己不同的应用,有不同的配置,对于不同OS中的应用配置与库依赖都是千差万别,可能互不相同的,很容易丢失且不容易复现。


容器




同时安装docker和containerd docker container 区别_配置环境_02



不同的容器可以分享同一个OS内核,在执行时只需要将需要的image和库依赖等内容放入容器中,而不需要安装在操作系统中,这样不同的容器中拥有针对不同应用的配置和库依赖,他们在执行时,就像操作系统中的进程一样。在不同的工作环境中,就不会存在配置差异的问题,因为在容器中,就已经有了应用需要的所有配置和库依赖等内容。container就是一个在“任何地方”执行的包。


container中包含了程序运行时所有的相关环境和配置,与虚拟机不一样,容器不会包含整个操作系统,它只包含一些需要的bin,image及其它一些相关的库文件。容器就像是一个轻量级的系统,它保证了程序在任何地方,都是在相同的配置环境下执行,有很好的复现性和维护性。


Docker到底是什么


Docker是一个容器的平台,容器在Docker环境下执行,Docker就像容器的载体。开发者用Docker来解决开发过程中,不同开发环境的影响,使得开发者专心编码而不用再去配置环境。运维人员用Docker来维护程序的运行环境。Docker解决的时候软件的配置问题,为软件运行及开发提供可复现的,可复用的配置环境。