docker简介

docker简介

在这里插入图片描述

docker的重要性不言而喻

1.1 Docker与传统虚拟化的对比

  • 传统虚拟机技术是虚拟出一套硬件 后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程
    直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。

容器的优势:

  • 容器能提供接近宿主机的性能,而虚拟机会损害一部分宿主机的性能
  • 启动快,同样虚机可能需要20s,但启动容器只需要1s
  • 传统虚拟化需要硬件cpu的支持,容器不需要而且容器是基于内核的虚拟化

Docker优势:

  • 解决OS和软件运行环境的依赖
  • 对于开发人员来说,不用担心部署开发环境
  • 开发环境、测试环境、生产环境高度一致
  • Docker是C/S架构

Linux开机启动流程:

  • 1)BIOS开机自检

  • 2)根据BIOS设置的优先启动项

  • 3)读取MBR引导

  • 4)加载内核

  • 5)启动第一个进程/sbin/init

  • 6)执行系统初始化脚本/etc/rc.d/rc.sysinit完成系统初始化

  • 7)运行相应的开机启动服务,如sshd

【注:传统虚拟化运行一个sshd服务需要完整的开机启动流程,docker是直接启动sshd服务,前面1)-6)全部略过,中间的流程全部精简】

1.2 Docker的三个概念

  • 镜像( Image )
  • 容器( Container )
  • 仓库( Repository )

在这里插入图片描述

  • 1)有图上可知,我们可以使用dockerfile文件用build方式构建镜像,也可以使用commit制作镜像,给镜像做镜像分层打上tag标签重命名。当然也可以在从docker registry上传或下载

  • 2)有了镜像之后我们可以用run进行创建并启动一个容器,使之成为Container,对于容器的操作,我们可以stop、start、restart来控制。

  • 3)最后我们也可以对镜像进行save备份或load还原

1.2.1 镜像(Image)

  1. 我们都知道,操作系统分为内核和用户空间。对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持。
  2. 而Docker 镜像(Image),就相当于是一个 root 文件系 统。比如官方镜像 ubuntu:16.04 就包含了完整的一套Ubuntu 16.04 最小系统的 root 文件 系统。
  3. Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。
  4. 镜像不包含任何动态数据,其内容在构建之后也不会被改变

1.2.2 分层存储

  1. 分层存储 因为镜像包含操作系统完整的 root 文件系统,其体积往往是庞大的,因此在 Docker 设计 时,就充分利用 UnionFS 的技术(1.2.1.1部分详解该技术),将其设计为分层存储的架构。
  2. 所以严格来说,镜像并非是 像一个 ISO那样的打包文件,镜像只是一个虚拟的概念,其实际体现并非由一个文件组成, 而是由一组文件系统组成,或者说,由多层文件系统联合组成。
  3. 镜像构建时,会一层层构建,前一层是后一层的基础。每一层构建完就不会再发生改变,后一层上的任何改变只发生在自己这一层。
  4. 比如,删除前一层文件的操作,实际不是真的删除前一层的文件,而是仅在当前层标记为该文件已删除。在最终容器运行的时候,虽然不会看到这个文件,但是实际上该文件会一直跟随镜像。
  5. 因此,在构建镜像的时候,需要额外小心,每一层尽量只包含该层需要添加的东西,任何额外的东西应该在该层构建结束前清理掉。
  6. 分层存储的特征还使得镜像的复用、定制变的更为容易。甚至可以用之前构建好的镜像作为基础层,然后进一步添加新的层,以定制自己所需的内容,构建新的镜像。

1.2.3 docker镜像构建机制

  1. docker镜像采用分层构建机制,最底层是bootfs,其上为rootfs。

(1)bootfs:用于系统引导的文件系统,包括boot引导、内核,容器启动完成后会被卸载以节约内存资源。

(2)rootfs:位于bootfs之上,表现为docker容器根文件系统。

  1. 传统模式中,系统启动之时,内核挂载rootfs时会首先将其挂载为“只读”模式,完整性自检完成后将其重新挂载为读写模式。
  2. docker中,rootfs由内核挂载为“只读”模式,而后通过“联合挂载”技术额外挂载一个可写层,如下图所示。
    在这里插入图片描述
    完成
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_44250083

微信号:c_x_y_000

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值