什么是容器技术?
2008年Linux Container容器技术诞生解决了IT世界里“集装箱运输”的问题,容器技术是一种内核轻量级的操作系统层虚拟化技术,能隔离进程和资源。Linux Container主要由Namespace和Cgroup机制保证运行,Namespace重点在用来隔离资源,每个Namespace下的资源对于其他Namespace都是隔开的,不可见的。总的来说容器之间不相互影响,容器和宿主机之间各自独立。Cgroups(Control Groups) 重点在限制资源的使用,提供对CPU、内存、磁盘资源的管理能力。
Linux Container中的Container是集装箱意思,码头的集装箱是一种按规格标准化的钢制箱子,特点在于整齐划一,层层重叠有规律,又各自独立。例如集装箱中的汽车通过邮轮运输送到目的地后,开箱即可以正常行驶。这就好比开发好的应用程序从Windows sever 64位环境安装到CentOS7.3环境,在安装应用文件五丢失,无需重搭系统所需环境,就可以在CentOS7.3安装以后可以正常运行。
容器技术都有哪些特点?
相比较于传统的虚拟化技术,创建环境、部署应用、应用的移植性很繁琐,容器技术轻松实现实现各环境灵活迁移和部署,容器技术的特点主要有:
1.移植简单:一次构建,随处部署,灵活迁移,Docker镜像可在所有主流 Linux 和Microsoft 平台快速迁移,提高开发效率和减少部署的工作量。
2.轻量级别,秒级部署:不同的镜像,容器的部署大概在毫秒之间。
3.安全隔离:虚拟化 CPU、内存、存储、网络资源,逻辑上与其他应用相隔离的沙盒化操作系统接口。
4.弹性伸缩,降本增效:Kubernetes、Swam、Mesos具有弹性管理能力,减少资源的消耗。
5.版本差异化控制:容器的镜像版本控制,可对历史版本进行追踪和差异比较。
容器的主要应用场景有哪些?
容器技术的诞生解决了PAAS的层的技术实现问题。容器技术主要应用在以下场景:
1.持续集成和持续部署 (CI/CD),持续集成 (CI) 和持续部署 (CD)是现代运维的基础,开发人员和运维人员持续沟通,CI/CD 创造了一种实时反馈机制,持续地传输小型迭代更改,加速更改,提高质量。
2.加速微服务应用架构进程,采用瀑布模型开发法的单体代码库转变为独立开发和部署的松耦合服务,其他服务组件,轻松地共享、部署、更新和瞬间扩展,容器技术用在传统应用,提高现有应用的安全性和可移植性。
3.降本增效,优化资源使用率。容器是一种轻量级的打包和隔离应用的技术,,所以 Docker 允许在同一物理或虚拟服务器上运行多项工作负载,进行IT资源进行重新整合,确保资源高效使用。
容器技术作为云原生发展基石,成为云计算领域的技术趋势,技术迭代更新很快并被广泛使用,从Docker到K8S、Rancher以及Podman,商业化和开源相结合,容器技术正在成为释放云价值的最短路径。