Docker(一)Docker扫盲

一    容器技术

容器技术是'虚拟化技术的一个分支',Docker只是'其中一个',属于'轻量级的虚拟化'

像阿里'CCE'、Google'GKE'、Tencent'TKE',都有自己的'自研容器',属于同一个'技术类型'

二    Docker的诞生

        Docker是dotcloud公司开源的产品,而dotcloud是2010年成立的公司,基于PAAS(Platfrom as a Service) 平台为开发者提供服务的,做服务平台的,2013-10改名为Docker

说明:任何一门技术也'不可能'在2~3年成立,依赖于某些'底层的技术'-->'namespace和cgroup'

       思考Docker为什么可以这么快成长起来

 PAAS:已经部署好的运行环境,我们只需要把'应用程序'往上一放就OK

 Docker是第三代的PAAS,'运行环境'不是通过脚本的产生,而是'通过Docker的封装'

三    Docker是什么 

'解析':Docker到底是什么?

Docker的底层内核虚拟化技术(Linux Container),Docker只是一个上层封装的工具而已!

1)Linux Container 是一种'内核虚拟化'技术,可以提供轻量级的虚拟化,以便'隔离进程和资源'

2)Docker 是PASS提供商dotcloud开原的一个‘基于LXC‘的高级容器引擎(工具,管理器),源代码'托管'在Github上,基于'Go语言'并遵从'Apach2.0协议'开源!

'关键词':底层实现技术、开发语言、遵循的协议!

go语言:类似C,少一点include,天生支持多线程现代版的C语言

Docker的启动毫秒级别

(3)Docker的解释说明

公司有一批货物,产品对'不同的人'使用(小孩,孕妇,成年人),货物'不要相互感染'

把一些想要的,'想封装在一起的资源'把它放在'同一个货箱中',将货箱装上车!

OS('货轮')-->在OS基础上的'软件'(理解成集装箱)

 1)Docker可以做隔离-->集装箱

 2)集装箱与集装箱之间可以相互补充,第一个集装箱没有装完可以装到第二个集装箱中,把两个集装箱绑在一起,而且怎么绑都是我说了算,自由组装,但是得有标准化的手段,这个标准已经被定义了,所以要掌握这些标准来自由组装!

 3)集装箱的内容可以由用户自定义,也可以由专业人员制造

内容:可以是天生就来的,或者说是自己一点一点塞进去了!

(4)虚拟机和Docker各自的优缺点

###########传统虚拟机###########

底层-->Server('硬件')-->Host OS('宿主操作系统') -->Hypervisor(虚拟监视器)-->Guest OS (虚拟机)-->Bins/Lib(lib库)-->App(部署的'应用程序')

分类:完全虚拟化,内核隔离!

优点:不同的应用程序是通过内核隔离,每个都有自己的操作系统

缺点:对公司而言,操作系统不能带来利益的增长,运行100个操作系统也不会加钱,而是这些上层应用程序的工厂才能加钱!

这些操作系统(Guest OS)都是不需要的,没有环境,应用程序怎么部署,传统尴尬

#######Docker#######

右边:解决这个问题

Servr--->Host OS -->'Docker Engine' -->Docker Enginee(Docker的管理引擎)-->'Bin/lib-->依赖库' --->App

共享:好几个APP在一个上面,并且共享操作系统

原来的情形:操作系统运行需要消耗资源(多个虚拟机)!

现在:这种方式,把这些本会消耗的资源给其它应用程序使用,例如Nginx,高并发!

缺点安全性,应用程序之间并没有隔离机制

容器虚拟化消耗的本机不必要的资源最少,同样的硬件属性可以支撑更多的用户访问!但安全性比较差!

消耗过多的必须要的资源,安全性最高(内核)

不同版本的--->对应的内核

宿主操作系统没有了(Guest)

#############Docker的组成##############

(1)Docker的构成

Docker的三大组件:'仓库-->repository'、'容器-->container'、'镜像-->image'

镜像

'镜像是什么'

# 操作系统镜像(最早的理解)--->现在--->Docker的镜像

Docker镜像理解--->'封装好的运行环境'

# 举例:把Nginx优化好之后封装成一个镜像,别人拿到这个镜像之后,运行之后变成容器!

# 什么是运行之后:把它加载,得到容器

容器

#####容器是什么#####

# 容器:正在运行的的运行环境!

# 举例:Nginx正在工作,这个状态可以理解为正在运行的工作环境!

# 镜像跟容器是有转换关系的!

仓库

仓库:'存放镜像',这个位置就是仓库!

# Docker官方的镜像仓库:hub.docker.com!

# 下载下来-->镜像--->运行nginx的运行环境

Docker的组件

Docker Client:'Docker的客户端'-->客户端的连接工具

Dockerd 是一个引擎,类似于一个'守护进程'(dameon),当客户端对其发出命令,执行获取结构,获取操作系统的LXC进行工作!

Docker Server:'接受'用户通过Docker Client'发出请求',并按照相应的的路由规则实现'路由规则'转发!

Docker是怎样优化得到的

# 链接--->问题:操作系统进行更改(ip_forward),两个应用程序需求不一样!

# 解决:加一个空白层(设备),应用优先级大于底层(核心)!

# 注意:每个应用都有一个独立的空白层!

# 更严重:应用A挂了,本身是共享你的操作系统,依赖于你!

# 说明:不用应用程序共享,而是镜像共享!

# 多个镜像:占用很多的存储资源,分层!

分层的理解

RHEL7(1G) -->nginx(200M)-->php -->mysql(5.7)

# mysql的升级-->需要5.8版本,直接把其删除

# 一个镜像有很多个子文件组成(不能超过128层)

# 链接-->镜像的某一层已经有了,会直接跳过,下载别的,减少存储量!

Docker的加速配置

# Docker放在国外(美国)--->现在CDN做的比较好-->稍微快点!

# 阿里,百度-->Docker加速,反向代理!

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值