Linux容器
什么是容器
容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。
容器与虚拟机都是为应用提供封装和隔离,但两者在运行环境上有显著的区别。容器在Host操作系统的用户空间中运行,与操作系统的其他进程隔离,这一点与虚拟机不同。
什么是Linux容器
Linux容器是与系统其他部分隔离开的一系列进程,从另一个镜像运行,并由该镜像提供支持进程所需的全部文件。容器提供的镜像包含了应用的所有依赖项,因而在从开发到测试再到生产的整个过程中,它都具有可移植性和一致性。
容器技术的产品
代表性有Docker、Podman、Kubernetes、Mesos等,
容器化和虚拟化的区别
虚拟化技术一般是模拟出硬件环境,然后在这个模拟的硬件环境上安装合适的操作系统来控制这些资源;而容器化不是模拟一个完整的操作系统,而是对进程进行隔离,或者说在正常进程的外面套了一个保护层,对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离。
虚拟机需要安装操作系统才能执行应用程序,而容器则不需要安装操作系统就可以运行。此外容器不是在操作系统外来建立虚拟环境的,而是在操作系统的核心系统层来打造执行环境,所以容器技术采用共享Host OS的做法,不需要在每一个容器内执行Guest OS。
容器镜像
容器镜像是一个特殊的文件系统,是容器的模板,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。
容器镜像采用分层结构,Docker镜像中引入了层(layer)的概念,用户制作镜像的每一步操作,都会生成一个层,也就是一个增量rootfs。分层结构是docker镜像如此轻量的重要原因。
镜像是启动容器的核心