「这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战」
Docker是个啥,这我哪知道
为啥要用它,我也不清楚
疑问起因:办公楼下金色满园的一个深秋滴大中午,我被大领导架到了他的小工位边,说是上层的云计算平台环境搭建好了,让我把我们的测试环境迁移到这上面,测试环境没问题就直接上生产,给他大刀阔斧的“淦”
那么要解决这个问题,都要用到哪些技术呢?
首先分析,这个计算平台的所拥有的的资源:
- 集成了已有的Git代码库
- 程序制品库、docker镜像库
- K8S资源
- 还有其他中间件服务资源 那么这么着,咱们的目标就初步明确了,就是将之前在物理或者虚拟服务器上部署的tomcat迁移到K8S资源平台中的容器中去,那么就要学习一下这个部署方式和部署环境了
那么第一步要学习的就是这个Docker容器了
Docker概念
Docker 是一个开放源代码软件,是一个开放平台,用于开发应用、交付(shipping)应用、运行应用。 Docker允许用户将基础设施(Infrastructure)中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。
Docker容器与虚拟机类似,但二者在原理上不同。容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、高效地利用服务器。 容器更多的用于表示 软件的一个标准化单元。由于容器的标准化,因此它可以无视基础设施(Infrastructure)的差异,部署到任何一个地方。另外,Docker也为容器提供更强的业界的隔离兼容。
——据维基百科说 听起来也就那么回事昂,不过如此嘛,我这个复制粘贴小码农还解决不了它,除了复制粘贴,码哥我也是个shell脚本小能手啊
Docker优势
- 更高效的利用系统资源
- 更快速的启动时间
- 一致的运行环境
- 持续交付和部署
- 更轻松的迁移
- 更轻松的维护扩展
演变历史
Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 版本开始,则进一步演进为使用 runC 和 containerd。
与传统虚拟机的区别
带着这些优势,我们准备后续将虚拟机转变为docker容器部署,带着前辈们的杰出成果,去做更多!