2021-12-14 Docker 初步认识

由于很多服务都部署到云平台,有必要了解docker

一、为什么会有Docker的出现

在这里插入图片描述
开发人员在将代码打包后交给运维部署,运维就说:“兄弟,不对呀,跑不通”。开发人员肯定是在本机跑通了的

为什么在开发人员那儿跑通了,在运维那儿就有问题呢?

环境和配置,比如开发人员是在Windows上开发的,运维要部署到阿里云或者ubantu上

所以Docker应运而生

这时运维就说:“兄弟,你能不能把你能运行的所有条件全部打包给我”
开发人员就给运维发过去这样一个pakage,这个war包是ok的,可以运行,包括代码、配置、系统、数据等等相关因素
在这里插入图片描述
举个例子:
假如你要搬家,你要把你的家具等一些零零碎碎的东西搬到新家,然后再在新家里面去重新布置,发现这又少了什么零件、那又少了什么零件,这就和上面的第一种一样

你要搬家,你找个塔吊、将你整个房子一起搬到另一个地方,房子里的东西和原来的一模一样,这就像上面的第二种

二、镜像

在这里插入图片描述
运维拿到开发人员的作品后,他需要其他人能够看得到,那么运维人员第一步就是要部署, 而现在由于高并发的环境和大流量的访问,所以都是需要集群

比如说开发人员交给运维10个完整的代码,每一台都需要去安装数据库、redis等等,这还只是10台,要是像618、双十一等活动,老板说把这个做扩容,做个80、100台,那这个时候运维已经疯了

有什么办法可以解决这种情况吗?

java有个特性叫封装,就是把公共的代码提出来,提高利用率。那么docker也是这样,把公共的环境打个包封装成镜像,然后每台机器有这么个镜像

所以开发人员需要给开发人员的是一个镜像,这个镜像是除了代码以外的环境配置等相关因素,只要开发人员能运行,那么运维人员也绝对能运行。一次封装,到处运行

logo的寓意

docker的logo是一条鲸鱼载着很多集装箱

比如:开发人员在本机跑的软甲需要用到redis3.0等四个环境(假如有四个),运维人员他已经安装了redis4.0,有时候换一个版本也许就跑步起来了

然后运维他不想装了,说:“你把你的redis等四个环境封装成四个集装箱,然后将四个集装箱构建成一个镜像文件”。

这个镜像文件中就有四个集装箱,每个集装箱都是开发人员本机环境的一个克隆,运维人员他就不会去装redis等环境了,他只需要装一个docker,就是那条鲸鱼

三、Docker能干什么

之前的虚拟化技术(VM)和容器虚拟技术有什么关系呢?

可以说参考了虚拟化技术得到了容器虚拟技术
在这里插入图片描述
他可以在一个操作系统里面安装另一个操作系统,比如在Windows上安装Linux

上图说明,灰色部分可以理解为Windows操作系统,然后就是包括Linux内核和各种库,最后就是再此之上装了一些软件,redis、mysql等等

虚拟机的缺点(centos)
资源占用多
冗余步骤多
启动慢

由于Linux的这些缺点,Linux发展出另一种虚拟化技术Linux容器(Linux Container),简称LXC
在这里插入图片描述
它只是取了Linux的内核,然后就是一些软件的容器运行在Linux系统上,可以说Linux容器就是一个取Linux系统之精华的环境

注:在centos上安装docker,centos版本在6.5或跟高版本

四、Docker仓库

提到仓库,会想到Git有本地仓库和远程仓库,我们完成了代码后会将本地的仓库代码push到远程仓库Github上,团队的其他同事去拉取

docker仓库也是类似,但提交的是除代码外的一个个镜像,比如redis、mysql等等,然后就可以告诉运维说我将镜像放到docker仓库了,运维会自己操作

有了仓库,运维怎么做?

在这里插入图片描述
(已redis为例)运维不再自己安装了,那么要从远程仓库上pull一个redis,pull下来的是一个镜像,某一个镜像的实例就是一个容器

简单说镜像就是模板,容器就是这个镜像的实例

docker的三要素:(面试可能问到!)

仓库、镜像、容器

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值