Docker定义
Docker的三要素:仓库、镜像、容器
Docker定义:解决了运行环境和配置问题的软件容器,方便做持续集成,并有助于整体发布的容器虚拟化技术。
Docker中的容器技术:将软件运行所需的所有资源打包到一个隔离的容器中,不再需要一整套操作系统;Docker实际就是个一个精细版、高度浓缩版的小型linux系统。
Docker特点
Docker和传统虚拟化方式的不同:传统的虚拟化技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用程序;容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟,因此容器要比传统虚拟机更为轻便。
每个容器之间相互隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。
使用DevOps:开发自己运维:一次构建,随处运行。
CentOS和Ubuntu的基础镜像仅170M。
Docker实现的技术依赖
Docker的实现依赖Linux的两大特性:NameSpace和Control Groups(cgroups)。
NameSpace是命名空间,是一种隔离的概念,操作系统中的命名空间提供了一种系统资源的隔离,包括了进程、文件系统和网络资源等等。在同一个命名空间下的进程,可以感知彼此的变化,而对其他命名空间的进程一无所知,这样,就可以让容器中的进程产生一个错觉,仿佛它自己是置身于一个独立的系统环境中,以此达到独立和隔离的目的。
从Docker的公开的资料来看,它使用了五种命名空间:
1)Process ID(PID),实现进程隔离
2)Network(NET),管理网络接口
3)IPC(InterProcess Communication),管理跨进程通信的访问
4)MNT(Mount),管理挂载点
5)UTS(Unix TimesSharing System),隔离内核和版本标识
Control groups是linux内核提供的用来可以限制、记录、隔离进程组所使用的物理资源的机制,在2007年被Linux kernel 2.6.24使用,可以说,cgroups就是为了实现容器而生的,没有cgroups就没有容器技术。cgroups提供的功能如下:
1)资源限制,必须对一个进程组设置内存大小,如果已使用的内存达到最大设定值,再申请内存时,就是提示OutofMemory
2)优先级设定,可以设置哪些进程组可以使用更大的cpu或者是磁盘io的资源。
3)资源计量, 它可以计算进程组使用了多少系统资源。尤其是在计费系统中,这一点非常重要。
4)资源控制,它可以将进程组进行挂起和恢复。
去哪获取学习资源
Linux上Docker安装
整个安装很简单,就分4步
1.安装依赖
2.安装docker
3.启动docker
4.查看docker版本
Windows上Docker安装
因为Docker使用了Linux的NameSpace和ControlGroup的技术,所以只能在Linux系统中使用,如果想在Windows上使用Docker,则只能通过虚拟机来实现。目前通过Boot2Docker来提供一整套的运行环境。
Boot2Docker包含的组件如下:
1)Boot2Docker Linux ISO,是为Docker定制的虚拟机镜像,其中包含了Docker的运行环境。
2)Virtualbox,为提供虚拟机服务的软件。
3)MSYS-git,提供shell的运行环境。
4)管理工具
Windows和Linux下的Docker运行环境区别如下图:
可以从如下网站下载安装包:
https://www.github.com/boot2docker/boot2docker
如果您喜欢这篇文章,别忘了点赞和评论哦!