我们为什么选择Docker?Why?

835

由百折不挠的信念所支持的人的意志,比那些似乎是无敌的物质力量具有更大的威力。——爱因斯坦

在这里插入图片描述

插画来自网络

什么是Docker?

Docker 使用Google公司推出的Go语言进行开发实现,基于Linux内核的cgroup,namespace,以及AUFS类的Union FS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。 由于隔离的进程独立于宿主和其他的隔离的进程,因此也称其为容器。docker百度百科

Docker能做什么?

作为一个测试,我们常常面临的问题:

  1. 测试环境与开发环境不一致,工单提交后,开发人员经常对我们说:“我这边是正常的!”
  2. 测试环境的搭建可能因为JDK的版本不同而失败等等问题

那么Docker就可以帮我们解决这一系列问题

docker在QA中的作用

Docker和虚拟机的区别

docker和虚拟机最大的区别就是:不同的虚拟化方案 为什么要这么说呢,我们来看下这张图就知道了!

在这里插入图片描述
搞错了,重来!
在这里插入图片描述
从上图可以看出来,左面的虚拟机是虚拟化了一整个操作系统(Hyper Vistor 虚拟机服务),而右边的docker并没有虚拟化操作系统,而是直接使用宿主机的内核,通过Docker Engine来管理所有的容器和镜像。

为什么要学习Docker

如果Docker相对于虚拟机来说没有那么大的优势,我们为什么要花时间来重新学习一个工具呢?

在这里插入图片描述
Docker作为一个新的技术,肯定是有非常多的优点,那么我们来看看相对于VM,docker的特点。
在这里插入图片描述
所以,总结了以下几点:

  1. docker相对于虚拟机启动时间快
  2. 硬盘占用空间小
  3. 性能接近原生,因为时直接使用宿主机内核
  4. 单机支持上千个容器,而虚拟机一般支持在几十个左右。

Docker的缺点

docker的缺点就是docker公司如何赚钱? docker有个缺点就是挑内核,正因为docker不虚拟内核,而是直接使用宿主机的内核,所以这既是他的优点,也是缺点。

不能用docker做兼容性测试:之前有个人说:我在docker上安装多个版本的centos系统,然后把我的APP放在不同的系统中跑,是不是可以完成兼容性测试呢? 心目中的理想原型:

在这里插入图片描述
但是要知道docker是直接使用宿主机的内核,也就是说,这2个APP所在的系统都是Ubantu4.1.0,也就达不到兼容测试。 所以,如果需要做兼容性测试的话,还是使用虚拟机。

结束

如果本篇博客有任何错误,请批评指教,不胜感激 !