持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第1天,点击查看活动详情
Build,Ship and Run Any App,Anywhere
容器
在熟悉k8s之前,我们需要了解docker相关的知识,毕竟k8s在docker之上的,在熟悉了docker之后,再去使用k8s,那么我们就会对k8s的使用和设计会清晰很多。
容器是一个标准化的单元,是一个轻量级、可移植的软件打包技术。它将软件代码及其相关依赖打包,使应用程序可以在任何计算介质中运行。简单来讲,容器就像一个标准化的盒子,能够装很多不同类型的东西,并且装完后能够塞进很多不同类型的柜子里。
-
容器的特性:
- 封装性:将软件打包成标准化单元以进行开发、迁移和部署
- 隔离性:计算、存储、网络等资源彼此隔离(运行环境的隔离)
- 高效性:轻量、快速启停、快速部署与迁移
- 职责分工明确:开发专心写代码,运维专注基础环境配置
- 镜像增量分发,也就是镜像分层
-
容器使用难题
-
统一平台:在k8s之前,并没有一个统一的平台去操作容器,基本上所有操作都由开发人员/运维人员完成
-
易用性
-
虚拟机 VS 容器
在没接触过容器的同学来说,都会有接触虚拟机,对虚拟机比较熟,那么虚拟机与容器之间有什么区别呢?
- 容器没有虚拟化层,所以容器通常称为轻量级虚拟化技术,然而他真正的实现是通过namespace来进行进程隔离,进入到容器内该Namespace下挂载的目录、文件或者网络。究其根源,容器只是宿主机器上的一个特殊的进程。
- 虚拟化虚拟的是硬件,容器虚拟的是操作系统,所以更高效
那么在这一节,我们稍微了解一下容器,以及容器与虚拟机的区别。那么下一节将从docker本身出发,去理解他所用到的技术