公司技术分享之docker入门

600 阅读3分钟

讲解: 提到计算机,我们对它非常熟悉,它会有不同的形态:台式机、笔记本、超级本...
计算机中安装的系统也会多种多样:window7,window10,mac,liunx...
那么如果我们有个场景,我想体验某个软件在不同系统上运行。比如:windows平台上运行QQ。然后再liunx平台上运行QQ,而我只有一台笔记本,能不能做到呢?
可以! 现在电脑都支持双系统或者多系统,我们可以安装一个windows系统,再安装个linux系统,但是计算机的双系统并不能够同时、同步的跑起来。它在切换系统时,必须重启电脑,换言之,一次型只能体验一个系统,如果要切换,要重启电脑,选择你要进入的系统,没有办法做到,同时跑两个系统。如果需要同时跑起来多个系统,并且能够随意的来回切换呢?
虚拟机可以!我们可以在本机系统上安装一个虚拟机的软件,如:VMware,我们需要什么系统,只需要在VMware中新建计算机,安装对应的操作系统即可。

接下来看一下虚拟机的优缺点:

讲解:新建一个虚拟机: 新建时,选择不同系统的镜像,进行安装,那么在安装过程中,需要给虚拟机的系统分配空间,资源。需要配置IP、网关等等虚拟出一套与真机一模一样的计算机。虚拟机的优点是:独立操作系统,提供一个独立、隔离的操作环境,在虚拟机中的操作不会影响主机及其他机器,当不需要时,直接删除虚拟机即可。缺点是:资源占用多,是系统级别的,启动缓慢,体积大,资源不能共享。那么应用部署在虚拟机上,能够模拟出在不同的环境下的运行情况,但是非常耗资源,那么后面便有了虚拟容器概念的提出,即docker

我们可以看看应用部署在docker上的情况是怎么样?

讲解:由于docker是虚拟化容器,那么应用部署docker中,就相当于docker在主机中,虚拟出一个隔离的容器,提供环境让应用跑起来,不需要基于操作系统,只是主机上的一个个进程。如此的优势就是:资源占用少,体积小,启动快。docker将应用和应用所需要的环境一同在这个容器中运行。那么我们可以比较一下虚拟机和docker之间的区别:

可以粗略的总结一下,docker的作用:使用虚拟化容器的技术,提供一次性的环境。更轻松的迁移和扩展,组建微服务架构
那么在我们的实际运用中,docker是怎么用的呢?哪些场景下可以使用它? 先来看看我们传统的开发流程:

讲解:开发人员使用自己本地的环境将代码测试通过后,提交到git或者svn上,在他本地环境下是没有问题的,但是,其他人,从git上拉取他的代码,那么可能就不行。获取生产环境与测试环境不一样,又得重新部署。在开发和运维上耗资比较大

讲解:那么docker开发流程下,将项目及其依赖的环境一同打包成镜像,开发部门、测试部门、直接拉取镜像,使用相同的环境运行项目。不会再出现之前的那些问题。

过渡:那么接下来看看docker中几个非常重要的组成部分:镜像、容器、仓库