docker之你所要了解的入门基础

 

关于docker你所要了解的

 

1.历史和现状   **
2.技术原理介绍 ***
3.基本概念 ***
4.学习必备基础 
 

1.历史和现状

 

曾经我们都在做一个PaaS平台
 
PaaS平台是什么?
 
包含了各种语言的开发环境,数据库,缓存,中间件,存储,测试环境等一系列服务的平台。
 
 
某云厂商提供的PaaS平台产品。
 
 
新一代的云应用平台技术则实现全方位的应用生命周期管理,其中代表者有Cloud Foundry,OpenShift,Docker,Heroku,MoPaaS等PaaS技术或服务。
 
 
docker  究竟是什么?
也被称为第三代PaaS平台。
盈利模式: 技术支持 
 
 

2.docker技术原理

cgroups
lxc
aufs
 
核心技术之cgroups
Linux系统中经常有个需求就是希望能限制某个或者某些进程的分配资源。于是出现了Cgroups。
cgroup就是controller group,在这个group里面,有分配好的特定比例的cpu时间,IO时间,可用内存大小。cgroups是将任意进程进行分组化管理的Linux内核功能。最早由google的工程师提出,后来被整合进Linux内核中。
 
 
    
 
核心技术之LXC
LXC 就是Linux containers简称。
基于容器的操作系统层级的虚拟化技术。借助于namespace的隔离机制和cgroup限额功能,LXC提供了一套统一的API和工具来建立和管理container。LXC跟其他操作系统层次的虚拟化技术相比,最大的优势在于LXC被整合进内核。不用单独为内核打补丁。
 
LXC 只要是提供了一个共享kernel的OS级虚拟化方法,在执行时不用重复加载kernel。且container的kernel与host共享,因此可以大大加快container的启动过程,并显著减少内存消耗,container在提供隔离的同时,还通过共享这些资源节省开销。这意味着container比真正虚拟化开销要小得多。在实际测试中,基于LXC的虚拟化方法的IO和CPU性能几乎接近baremetal的性能。
 
 
虽然container所使用的这种类型的隔离非常强大,然而是不是像运行在hypervisor上的虚拟机那么强壮任有争议,比如,内核停止,那么所有的容器就会down掉。
 
性能方面:LXC>KVM>XEN
内存利用率:LXC>KVM>XEN
隔离程度: XEN>KVM>LXC
 
 
核心技术之AUFS
 
什么时AUFS? aufs是一个能透明覆盖一或多个现有文件系统的层状文件系统。支持将不同目录挂在到同一个虚拟文件系统下,可以把不同的目录联合在一起,组成一个单一的目录。这种是一种虚拟的文件系统,文件系统不用格式化,直接挂载即可。
 
Docker一直在用AuFS作为容器的文件系统,当一个进程需要修改一个文件时,AuFS创建该文件的一个副本。AuFS可以把多层合并成文件系统的单层表示。 这个过程称为COW 写入复制 copy on write。
 
AuFS允许docker把某些镜像作为容器的基础。例如,你可能有一个可以作为不同容器的基础的centos系统镜像。多亏AuFS,只要一个centos镜像副本就够了。
 
 
 
docker的镜像没有包含kernel。共享kernel,所有镜像的kernel都一样,
某些应用对kernel有要求,所以容器技术对这个就不能用。
 
namespace(类比 平行空间)
 
AUFS 层状文件系统。 ( 汉堡  一层一层的)
 
 
最早支持这个AUFS技术的时Ubuntu。
 
docker文件系统。
 
 

3.docker的基本概念

docker image: 
 
docker中最重要的部分,docker image是一个极度精简的Linux程序运行环境,比如vi这种基本工具都没有。
 
docker image是需要定制化build的一个‘安装包’,包括基础镜像和应用的二进制部署包。
 
dockerfile用来创建一个自定义的image,包含了用户指定的软件依赖等。当前目录下包含Dockerfile,使用命令build来创建新的image。
 
docker image的最佳实践之一是尽量重用和使用网上公开的基础镜像。
 
docker container:
 
docker container是image的实例,共享内核
 
dockers container里可以运行不同OS的image,比如Ubuntu的或者CentOS。
 
docker exec命令进入容器排查问题。
 
docker container没有对外的IP,通常不会有服务端口暴露,是一个封闭的“沙箱/盒子”
 
 
 
docker container的生命周期
 
 
docker daemon
 
docker daemon是创建和运行container的Linux守护进程,也是docker最主要的核心组件。
 
docker daemon可以理解为docker container的container。
 
docker daemon可以绑定本地端口提供rest API服务,用来远程访问和控制。
 
 
 
 
docker registry/Hub
 
docker 如此吸引人,除了它的新颖的技术外,围绕官方的registry(docker hub)的生态圈也是相当吸引人眼球的地方。
 
在docker hub上你可以很轻松下载到大量已经容器化好的应用镜像,即pull即用。
 
注意: docker hub是docker公司私有的, 国内曾有公司(wangyi 蜂巢)试图提供镜像服务,但被禁止。
目前国内只有daocloud提供代理缓存服务。(因为被墙)
 
 
 
docker核心组件的关系
 
 

4.docker学习必备基础技能

 
Linux基本操作和基本知识:磁盘(lvm等等),文件,日志,用户,权限,安全,网络,建议centos/redhat
 
虚机相关技能:VMware workstation/virtbox熟练使用,虚机clone,组网,host-only网络,nat网络等熟练操作。
 
 
 
ok,了解这些就可以开始搞搞docker了
 
 
 
 
 
 
 
 
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值