Docker容器技术深入介绍.pdf

Docker容器技术深入介绍 技术创新,变革未来 目录 Contents 01 Docker的基本原理 06 Docker Registry 07 实验32:Docker Registry的搭建 02 实验29:Docker安装部署 和使用 08 Kubernetes容器云 03 实验30:Docker命令行操作 04 Dockerfile 09 实验33 Kubernetes搭建和使用 10 本章小结 05 实验31:Dockerfile创建PHP镜像 01 Docker的基本原理 Docker简介 Docker最初是 Dotcloud公司在法国期间发起的一个公司内部项目 。它是基于 Dotcloud公司多年云服务技术的一次革新 ,并于2013年3月以Apache 2.0授权协议 开源 ,主要项目代码在Github上进行维护 ,Docker项目后来还加入了 Linux基金会 , 并成立推动开放容器联盟。 Docker使用Google公司推出的Go语言进行开发实现 ,基于 Linux内核的Cgroups 、Namespace,AUFS类的Union FS等技术 ,对进程进行封装隔离 ,属于操作系统层 面的虚拟化技术。 由于隔离的进程独立于宿主和其他隔离的进程,因此也称其为容器。最初的实现是 基于LXC的;从Docker0.7以后开始去除LXC,转而使用自行开发的 Libcontainer;从 Docker1.11开始 ,则进一步演进为使用Runc和Containerd。 Docker 架构图 Docker引擎是C/S的架构 ,Docker客户端与 Docker Daemon (守护进程)进行交互 ,Daemon负责构建、运行和发布Docker容器 ,Docker的客户端与Daemon通过Restful API进行Socket通信。 Docker 架构图 Docker基于Linux容器技术 (LXC),Namespace,Cgroup ,Unionfs (联合文件系 统)等技术实现: (1)Namespace(命名空间) :每个容器都有自己独立的命名空间,运行在其中的应 用像是在独立的操作系统中运行一样 ,命名空间保证了容器之间彼此互不影响 。通过 Namespace实现了进程和进程之间所使用的资源隔离 ,使不同进程之间彼此不可见 。 Docker用到的命名空间有: PID命名空间:用于隔离进程 ,容器都有自己独立的进程ID; NET命名空间:用于管理网络 ,容器有自己独立的Network Info; IPC命名空间:用于访问IPC资源 (IPC:Inter Process Communication); MNT命名空间:用于管理挂载点 ,每个容器都有自己唯一的目录挂载; UTS命名空间:用于隔离内核和版本标识 (UTC :Unix TimeProcess System),每个 容器都有自己独立的Hostname和Domain。 (2)Cgroup (控制组) :Cgroup是 Linux内核的一个特性,主要用来对共享资源进 行隔离、限制、审计等。 (3)UnionFS (联合文件系统):是一种分层、轻量级并且高 性能的文件系统 ,它支持对文件系统的修改作为一次提交来一层层的叠加 ,同时可以将不 同目录挂载到同一个虚拟文件系统下 Docker 架构图 Docker引擎是C/S的架构 ,Docker客户端与 Docker Daemon (守护进程)进行交互 ,Daemon负责构建、运行和发布Docker容器 ,Docker的客户端与Daemon通过

文档评论(0)

1亿VIP精品文档

相关文档