Docker

认识Docker

  1. 什么是docker
    docker是一个开源的容器引擎,让开发者可以将应用程序连同所依赖的运行环境一并打包到可移植的容器中,进而发布到任何一台Linux服务器上

  2. docker的三个组件
    docker client:docker客户端,用户界面,支持与docker daemon通讯
    docker daemon:docker运行于主机之上,处理docker client的请求
    docker index:中央registry,负责镜像文件的备份(包括公有或者私有访问权限)

  3. docker三要素
    container:容器,负责应用程序的运行,包括应用程序运行所需的环境
    image:镜像,作为运行容器的模板
    dockerfile:文件指令集,用于指示如何创建docker镜像

什么是容器

简单说就是一个标准的软件集合,这个集合包含所有可以使得应用可以快速且稳定地从一个环境到另一个环境运行(从开发环境到生产环境)所需要的代码和各种依赖,docker容器镜像是一个轻量、独立且可执行的软件包,这个软件包包含应用运行所有东西,比如代码、应用运行环境、系统工具、系统库以及相关设置。当在Docker Engine上运行时,可以通过镜像生成容器,可以通过一个镜像生成多个容器

容器化 vs 虚拟化

容器和虚拟机在资源隔离和分配方面具有相似的优势,但功能是不尽相同的,因为容器虚拟化是在操作系统层面进行的,而不是像虚拟机是在硬件层面上进行的,因此容器相较虚拟机而言会更加合适和高效,架构对比图:
Docker vs Virtual Machine
上图(图片来自docker官网)可以看到,

  • 容器化(左图)是建立在操作系统之上,多个不同的应用分别部署到不同的容器中,每个容器独立运行,相互隔离,所有容器运行由相同的操作系统统一管理,启动一个应用只需要启动一个进程就可以,大大提高启动效率
  • 虚拟化(右图)可以说是直接建立在硬件资源之上,图中的Hypervisor是虚拟化技术的核心,它的基本功能就是非中断地支持多工作负载迁移。当服务器启动并执行Hypervisor时,它会给每一台虚拟机分配适量的内存、CPU、网络和磁盘,并加载所有虚拟机的客户操作系统,也就是说每一台虚拟机是需要有独立的操作系统,然后才能在其上部署各种应用

Why docker?

  1. 更高效的的利用系统资源。因为容器技术不需要对操作系统乃至硬件进行虚拟化,所以Docker对资源的利用率更高
  2. 更快速的启动时间。相比于虚拟机而言,容器启动可以在几秒内实现,因为传统虚拟化启动一个应用服务,需要加载完整的操作系统,而这一过程会消耗大量时间
  3. 一致的运行环境。Docker会提供除内核外的完整运行环境,这样就保证了应用各个开发阶段的所有运行环境的一致性
  4. 持续交付和部署。使用Docker可以通过定制应用镜像来实现持续集成、持续交付、部署。
  5. 更易迁移。正是由于Docker确保了执行环境得一致性,使得应用的迁移更加容易。
  6. 更容易维护和扩展。Docker使应用的分层存储以及镜像的技术,使得应用重复部分的复用更为容易,也使得应用的维护更新更加简单,基于基础镜像进一步扩展镜像也变的非常简单
容器与虚拟机优势对比
特性容器虚拟机
启动速度秒级分钟级
镜像大小以MB为单位多以GB为单位
性能接近原生弱于容器技术
系统支持数量单机可以支持几百甚至上千个最多几十个

以上是对Docker的简要介绍,下一篇会介绍一下Docker的安装

by Relon

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值