标签:虚拟 将不 命名空间 语言 提高 strong 工作 viso 多进程
Docker是一个开源的应用容器引擎,基于LXC(Linux Container)内核虚拟化技术实现,提供一系列更强的功能,比如镜像、 Dockerfile等;
Docker理念是将应用及依赖包打包到一个可移植的容器中,可发布到任意Linux发行版Docker引擎上。使用沙箱机制运行程序, 程序之间相互隔离;
Docker使用Go语言开发。
Docker采用C/S架构(服务端与客户端,b/s浏览器和服务器),Dcoker daemon作为服务端接受来自客户端请求,并处理这些请求,比如创建、运行容器等。客户端为用 户提供一系列指令与Docker daemon交互。
LXC:Linux容器技术,共享内核,容器共享宿主机资源,使用namespace和cgroups对资源限制与隔离。
Cgroups(control groups):Linux内核提供的一种限制单进程或者多进程资源的机制;比如CPU、内存等资源的使用限制。 NameSpace:命名空间,也称名字空间,Linux内核提供的一种限制单进程或者多进程资源隔离机制;一个进程可以属于多个命 名空间。Linux内核提供了六种NameSpace:UTS、IPC、PID、Network、Mount和User。
AUFS(advanced multi layered unification filesystem):高级多层统一文件系统,是UFS的一种,每个branch可以指定readonly(ro 只读)、readwrite(读写)和whiteout-able(wo隐藏)权限;一般情况下,aufs只有最上层的branch才有读写权限,其他branch 均为只读权限。 UFS(UnionFS):联合文件系统,支持将不同位置的目录挂载到同一虚拟文件系统,形成一种分层的模型;成员目录称为虚拟 文件系统的一个分支(branch)。
隔离性与安全
容器之间的进程是相互隔离的,一个容器出现问题不会影响其他容器。
使用要求
KVM基于硬件的完全虚拟化,需要硬件CPU虚拟化技术支持; 容器共享宿主机内核,可运行在主流的Linux发行版,不用考虑CPU是否支持虚拟化技术。
微服务 Docker这种容器华隔离技术,正式应对了微服务理念,将业务模块放到容器中运行,容器的可复用性大大增加了业务模块扩展性。
简单说,Docker镜像是一个不包含Linux内核而又精简的Linux操作系统。
Dockerfile 中的每一行都产生一个新层
FROM alpine:latest 132h1rk1hb3rkjb
MAINTAINER mxy 12hb1b2b12b4y1b42k
CMD echo "hello Docker!" 12jhvkj1241
ro只读 rw读写 最上的是容器层 下面是那个是image 层
分层的好处 层如果重复的话,会共享,压力会小很多
标签:虚拟 将不 命名空间 语言 提高 strong 工作 viso 多进程
原文地址:https://www.cnblogs.com/mxyindex/p/11051897.html