Docker(一) 初识Docker

一、Docker简介

       什么是Docker呢?Docker是一种新兴的虚拟化方式。Docker其实就是一个容器,这个容器可以放置我们的应用,管理我们的应用。Docker本意是码头工人,码头工人是干什么的,就是管理集装箱的,而集装箱中装的就是我们的应用。

二、为什么要用Docker

       我们要在服务器上放置应用,不同的应用程序可能会有不同的应用环境,比如.net开发的网站和php开发的网站依赖的软件就不一样,如果把他们依赖的软件都安装在一个服务器上就要调试很久,而且很麻烦,还会造成一些冲突。

       在没有Docker的时代,通常我们会在服务器上创建不同的虚拟机来放置不同的应用,目的是隔离不同应用的环境,但是一个完整的虚拟机包含了一整套操作系统、一个或多个应用、必要的二进制文件和库资源,因此占用大量空间。而且虚拟机启动也十分缓慢 。

       而在有了Docker之后就不一样了,Docker是一个应用层抽象,用于将代码和依赖资源打包在一起。 多个容器可以在同一台机器上运行,共享操作系统内核,但各自作为独立的进程在用户空间中运行 。与虚拟机相比, 容器占用的空间较少(容器镜像大小通常只有几十兆),瞬间就能完成启动 。

       简而言之,使用Docker的目的:

       ·为应用提供需要的应用环境

  ·节省开销,更合理的利用资源

        当然我们会根据不同的需求去决定到底是使用Docker还是虚拟机,他们各有各额特点。虚拟机更擅长于彻底隔离整个运行环境,例如,云服务提供商通常采用虚拟机技术隔离不同的用户。而Docker通常用于隔离不同的应用 ,例如前端,后端以及数据库。

       图示Docker与虚拟机

     

       上图左边就是Docker打包应用的方式,而右边就是虚拟机打包的方式,可以看到Docker只需要在服务器上安装了Docker的服务,就可以运行多个不用的应用。而虚拟机则是创建多个应用所需的操作系统来进行隔离。当然我们也可以从上图看到Docker和虚拟机是可以共存的。

三、Docker的基本概念

       Docker中有非常重要的三个基本概念,理解了这三个概念,就理解了 Docker 的整个生命周期。

       ·镜像

       镜像(Image)相当于一个分层存储的用户文件系统,是一堆只读层(read-only layer)的统一视角。

       什么意思呢?操作系统分为内核和用户空间。对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持。而 Docker 镜像(Image),就相当于是一个 root 文件系统(这里也就解释了为什么一个主机里可以有n多个Docker了,因为他们都在共用一个内核啊)。因为镜像包含操作系统完整的 root 文件系统,其体积往往是庞大的,因此在Docker 设计时,就充分利用 Union FS 的技术,将其设计为分层存储的架构。所以说,它是一堆只读层的统一视角,它是由多层文件系统联合组成。

       

 

       ·容器

       容器(container)的定义和镜像(image)几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。 

       镜像是静态的定义,容器是镜像运行时的实体(很类似与面向对象中的类与对象)。

       容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的 命名空间。因此容器可以拥有自己的 root 文件系统等。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。

       要点:容器 = 镜像 + 读写层。并且容器的定义并没有提及是否要运行容器。

 

        ·仓库

       镜像构建完成后,可以很容易的在当前宿主上运行,但是,如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry就是这样的服务。

       一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。

       仓库就是我们存放镜像的地方

   

       简单的概念就是这些了,更深入的在后续慢慢理解。

 

转载于:https://www.cnblogs.com/WeirdRomance/p/10132919.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值