初识Docker(基本概念)

Posted HUTEROX

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识Docker(基本概念)相关的知识,希望对你有一定的参考价值。

前言

兄弟们,明天我就期末考试了,给我来一波祝福~!!!
老规矩,什么是Docker,这玩意能干嘛,有什么用,为什么要用它,有什么优势。在学习一个新东西之前我们都需要带着这些疑问开始进入学习,那么今天的这篇博客主要就是讲解一些基本的概念,这样一来对于Docker的学习就非常快了,同时这也是我本人的笔记整理。那么接下来就开始一一解答上面提到的问题。本章节为纯理论,后面才是实际操作,理论不通=白搭。

什么是Docker&为什么用它

首先这个Docker也可以算是一个新技术吧,毕竟是最近几年流行起来的。那么Docker是一个容器技术,是一种虚拟化隔离技术。首先这玩意咋一看有点类似于虚拟机,其目的是为我们提供一套隔离的环境。
那么问题来了,我们为什么要用这个玩意。原因很简单,举个例子,你试试在你自己电脑上装好几个python环境,好不好管理,尤其是当你的项目需要使用到不同的环境时,当然这个时候你会说如果是python 我可以使用virtualenv 那么如果我的项目同时使用的是mysql5.7 8.0呢(虽然现实生活中不会有人这样干)但是对于一个大型项目,它的部署开发环境时很复杂的,这个会带来环境配置问题以及维护问题,如果两个项目之间还存在某些依赖的冲突问题又该如何解决。这一点在大型的微服务架构项目当中可能很容易出现问题。 当然你可能会说,我只是一个简单的单体架构,不需要那么复杂的环境那我为什么要用这个。那么可以肯定的是对于简单项目我们当然不需要一定使用docker,但是使用docker可以帮助我们省略一部分的环境配置问题,我们可以直接使用已经配置好的镜像来创建我们的容器从而运行我们的项目,哪怕你的项目环境并不复杂。


就像上面的图片说的一样。
所以说Docker是一个帮助我们创建管理我们项目运行环境的工具,而且这玩意是基于Go语言开发的。

Docker基本概念

注意我这里说的是工作流程,不是底层原理,那玩意都深入系统内核去了。

Docker镜像

这个主要还是那个说说那个Docker的跨平台嘛。首先明确一点Docker有window版本的,但是我们一般使用Linux版本。所以在此之前如果,你想要跟着本系列博文来走的话,这边建议你先把Linux操作学一下吧,也不难。此外我们这一步是针对部署,针对微服务集群的内容(前面的SpringCloud 的 Eureka nocas feigen 的微服开发笔记还在整理中…后面还有一些中间件的内容,分布式锁等等的内容还在学习整理中…我的目标是让所有人能够看懂(满足阶段的同学)打破专业术语的隔阂,当然也是方便我自己)

首先我们知道我们的操作系统大概分几个层。

通过这个图我们首先知道,对于哪怕是同一种操作系统,不同的发行版本之间也有可能存在差别。所以对于Docker实现就要解决不同的系统差异的问题,事实上这个也是我们实际部署项目当中可能差出现的问题,你win7开发的应用在win10可能跑不了,或者你给Ubuntu开发的应用给centos不是开玩笑嘛。
所以我们的Docker引入了一个东西叫做 镜像。

从前面的图我们知道,我们系统内核是一样的,但是我们的应用调用的系统函数库是不一样的。所以我们做这样的处理。

那么这个就是我们镜像。

Docker与虚拟机的差别

这里不废话了,贴出两张图片

DockerHub

这玩意是啥咧,其实看到HUB就已经知道了,这玩意其实和GitHub类似,只不过这里面托管的是我们的镜像。

容器

这个是我们Docker的重点了。
首先我们知道了一个东西叫做镜像,那么容器其实就是根据我们的镜像来创建的具体的一个环境。

总结

对Docker我们发现我们对于Docker有两个部分可以操作,一个是对镜像,这部分其实就是(创建,拉取,删除,加载,保存)
对于容器嘛,就是(创建,暂停,继续,停止,启动)具体怎么操作后面再说。之后是为什么要学习,你做好的东西,不上线的么,为什么抢运维的饭碗,难道后端全栈连运维都不会么~好了,小爷背近代史纲要去了!

以上是关于初识Docker(基本概念)的主要内容,如果未能解决你的问题,请参考以下文章

第133天学习打卡(Docker 初识Docker Docker的基本组成 安装docker 阿里云镜像加速 Docker常用命令)

强力的应用容器引擎——docker的安装和镜像容器的基本操作!

初识容器与Docker

初识数据仓库-基本概念

初识性能测试:性能测试基本概念

Docker学习笔记.初识Docker