docker 是什么 应用容器引擎 基于内核虚拟化技术: Linux Container 开源的 Go 语言编写 理念————*容器*: 标准化包:将应用和依赖打包成一个可移植的容器(镜像), 任意系统:可发布、运行到任意 docker 引擎上, 进程级隔离:进行沙箱运行机制,程序之间相互隔离 基本架构:C/S Server: Dcoker daemon 作为服务端接受来自客户端请求, 并处理这些请求, 比如创建运行容器等 Client: 主要是 Cli 命令行,客户端为用户提供一系列指令与 Docker daemon 交互 通过 restful api 进行通信 有人命名为:洋葱模型 远程还有个 Registry 存储仓库,类似 github 一样,有公共的 dockerhub,也可以自己搭私有的仓库 技术组件 LXC: Linux 容器技术,共享内核,容器共享宿主机资源,使用 namespace 和 cgroups 对资源限制与隔离。 Cgroups(control groups): Linux 内核提供的一种限制单进程或者多进程资源的机制;比如 CPU、内存等资源的使用限制。 NameSpace:命名空间,也称名字空间, Linux 内核提供的一种限制单进程或者多进程资源隔离机制;一个进程可以属于多个命名空间。 Linux 内核提供了六种 NameSpace: UTS:文件 IPC:通信 PID:进程 Network:网络 Mount: User:用户 UFS(UnionFS):联合文件系统,支持将不同位置的目录挂载到同一虚拟文件系统,形成一种分层的模型;成员目录称为虚拟文件系统的一个分支(branch) AUFS(advanced multi layered unification filesystem):高级多层统一文件系统,是 UFS 的一种,每个 branch 可以指定 readonly(只读)readwrite(读写)和 whiteout-able(wo 隐藏)权限;一般情况下, aufs 只有最上层的 branch 才有读写权限,其他 branch 均为只读权限。 和虚拟机对比 同样是虚拟化技术,它和虚拟机的区别:……
阅读全文