一、课程大纲:
### --- 课程大纲:
~~~ docker简介
~~~ docker安装
~~~ docker容器管理
~~~ docker镜像/仓库
~~~ docker网络
~~~ docker数据存储
~~~ docker资源限制
~~~ docker远程访问
一、docker概述:容器是什么:
### --- docker诞生:
~~~ docker是dotcloud公司开源的一款产品dotcloud是2010年新成立的一家公司,
~~~ 主要基于PAAS(Platfrom as a Service)平台为开发者提供服务。
~~~ 2013年10月dotcloud公司改名为Docker股份有限公司
### --- docker历程:
~~~ Linux Container是一种内核虚拟化技术,可以提供轻量级的虚拟化,一遍隔离进程和资源
~~~ docker是PAAS提供商dotcloud开源的一个基于LXC的高级容器引擎,
~~~ 源代码托管在GitHub上,,基于go语言并遵从Apache2.0协议开源
~~~ Docker设想是交付运行环境如同海运,OS如同是一个货轮,
~~~ 每一个在OS基础上的软件都如同集装箱,用户可以通过标准化手段自由组装运行环境,
~~~ 同时集装箱的内容可以由用户自定义,也可以由专业人员制造。
~~~ # 注:go语言类似于c语言,天生支持多线程
~~~ docker是基于go语言并遵从Apache2.0协议开源的基于LXC的高级容器。
~~~ # 目的:
~~~ docker想把我们的运行环境通过标准化的手段进行组装或封装。
二、docker与传统虚拟化对比:
### --- 注:Containers vs.vms:传统虚拟化;
~~~ 优点:操作系统之间是通过内核去隔离的;
~~~ 缺点:资源利用率教容器级虚拟化较低。
~~~ # container:docker虚拟化:
~~~ 优点:性能较高,容器级虚拟化可以消耗的硬件资源最少,同样的硬件级资源,提供服务较多 ;
~~~ 缺点:安全性较差
### --- docker的构成:(三大金刚)
~~~ # docker仓库:https://hub.docker.com
~~~ docker自身组件
~~~ # docker client:
~~~ docker的客户端
~~~ # docker server:
~~~ docker daemon的主要组成部分,接收用户通过docker client发出的请求,
~~~ 并按照相应的路由规则实现路由分发
~~~ # docker镜像:
~~~ docker镜像运行之后编程容器(docker run)(封装好的运行环境)
~~~ # 容器:
~~~ 正在运行的运行环境