zoukankan      html  css  js  c++  java
  • Docker是什么?(转载)

    转载的 (恩 作者是它 小黑羊JoinWings )

    用冷库来解释docker

    谈起Docker,小黑羊禁不住想起小时候在冷藏厂打工的经历.....
    为什么冷藏厂会乱入?因为那简直是虚拟化和Docker活生生的例子。
    首先你得有个库房>>

    这库房敞亮吧,能造库房的包工头很多,比如华为、惠普、Dell、联想、曙光、浪潮之类的。
    这些库房有个高大上的名字,叫物理服务器。
    鱼呀、肉啊就可以存到库房了吗?当然不行!
    你需要低温才可以保鲜!

    所以你得有制冷机>>
    主流的制冷机有两大系列
    Windows制冷机和Linux制冷机

    配备了制冷机的库房就可以正常Work啦

    最初的冷库就是这个样子
    但是问题来了,各种库藏品都很矫情。

    怕串味儿怎么办?温度要求不一致怎么办?
    SO--
    冷库虚拟化来啦>>
    有个叫VMware的泥瓦匠想了个办法,他把库房隔成很多叫做“虚拟机”的小房间,“密封”起来,每个房间放一个制冷机,这就是冷库虚拟化。

    不怕串味儿,每个小房间的温度独立可控,鱼呀虾呀表示很Happy。
    世界清净了,后来还有几个泥瓦匠也学会了库房分隔术,到处给人修冷库。
    泥瓦匠Vmware用的砌墙工具叫ESXi
    泥瓦匠Citrix用的砌墙工具叫Xen Server
    泥瓦匠Microsoft用的砌墙工具叫Hyper-V
    还有一些草根泥瓦匠用的工具叫KVM
    可是这世界上矫情的人太多,如此完美的方案他们还是吹毛求疵瞎BB:

    还能不能想点别的办法?

    于是--
    冷库Docker出世>>
    制冷机Linux是个喜欢动脑筋的好青年,它发明了一种叫“LXC”的“软隔离”技术,冷库分隔成叫做“容器”的小单间,但每个房间不需要单独安装制冷机,只要布些导冷管和温控阀门,这样看起来就达到目的了。
    后来有人把“LXC”这种“软隔离”技术发扬光大,用一堆“GO”零件进行改装,可以大幅提高冷库的建设和改进速度,于是Docker横空出世了!

    Docker被业内称为容器管理引擎,在小黑羊看来,其实它就是一套给冷库快速建“单间”和铺“导冷管”的装置,源于LXC,但是更智能。

    比如,有些“冷库”的使用者不知道储存“冷冻大虾”的单间该建成什么样,“导冷管”该怎么排布。Docker就建了一个“样板间”展览中心,小白们仿照“样板间”在自家冷库里可以原样造一个出来,这种“样板间”被称为“Docker镜像”,展览中心被称为“Docker Hub”。

    Docker Hub,你懂滴
    所以,用Docker建的冷库是这样子滴。

    两类冷库哪家强?
    有了Docker是不是虚拟化就歇菜了呢,其实他们各有特色:

    上图和Docker官网略有区别,因为当下主流的Bare-metal虚拟化是没有 Host OS这一层的,Docker官网的原图对虚拟化进行了“蓄意”削弱,或者它主要针对KVM这类“半裸”虚拟化吧。

    Docker的优势很明显:

    占用资源少:共享一个制冷机(OS),各个单间埋导冷管(Bins/Libs)就行了。

    部署快:不用建实体墙隔离(多NameSpace),有样板间可参考(镜像服务)

    启动快:拧开导冷管的阀门就可以了(共享主机OS Kernel,快速加载),比启动一台“制冷机”方便。

    所以对于“臭鱼烂虾”天天要搬进搬出、反复折腾的客户来讲,Docker很“敏捷”!

    但是,与虚拟化相比,Docker也存在一些不足,例如安全性:

    1、非实体隔离墙,密封性不好,也许会串味儿。

    2、导冷管或者冷器阀受损可能殃及整个制冷压缩机。

    3、有些未经检疫的样板间会放到展示中心,对下载者造成伤害。

    同时,Docker由于对Linux牌的制冷机过于依赖,导致对Windows制冷机无法原生支持。

    不过这一点,也许将来不是问题,据说Windows家那位财大气粗的老板有包养Docker的计划。

    docker hub 有很多镜像的地方,市场

    docker 的构建,自己玩似乎也没有什么意思。一开始还想着用docker + python玩科学计算的。然而并没有什么什么用

    sudo docker run -i -t test_docker ubuntu /bin/bash       -i输入 -t打开一个终端  就大概是这个意思吧。一点很重要的是,每个docker命令都要用sudo 前缀

    docker rm   ,docker info 等等让我想到很多linux工具都是这用的   

    查帮助 sudo docker build --help  

    试着跑了一下应用,可以跑起来。码头工人,docker 对内部容器进行了一个输入输出包装。使用docker engine 命令可以把他们拉起来

    对于它就这些吧,无爱

    人生苦短,我用docker   ------- 运维工程师

  • 相关阅读:
    截取字符串为20个字
    GitFlow
    CSS3盒模型display:box;box-flex:3;
    CSS移动端多行显示多余省略号
    2017年6大热门开源项目
    七周七学习成为数据分析师
    2017-写给5年后的自己
    XGeocoding使用手册
    读书的5个秘诀
    如何快速成为数据分析师?(知乎)
  • 原文地址:https://www.cnblogs.com/asreg/p/7244990.html
Copyright © 2011-2022 走看看