您好,欢迎访问一九零五行业门户网

Docker 有性能损失吗?

docker 有性能损失吗?
docker有性能损失,但是很小,相对docker的出色的功能,这点的性能损失是可以忽略不计的,docker是一个开源的应用容器引擎,可以让开发者打包应用到一个容器中,然后发布到任何流行的linux机器上运行。
docker 
docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的linux机器或windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
一个完整的docker有以下几个部分组成:
dockerclient客户端
docker daemon守护进程
docker image镜像
dockercontainer容器
docker 原理
docker核心解决的问题是利用lxc来实现类似vm的功能,从而利用更加节省的硬件资源提供给用户更多的计算资源。同vm的方式不同, lxc 其并不是一套硬件虚拟化方法 - 无法归属到全虚拟化、部分虚拟化和半虚拟化中的任意一个,而是一个操作系统级虚拟化方法, 理解起来可能并不像vm那样直观。所以我们从虚拟化到docker要解决的问题出发,看看他是怎么满足用户虚拟化需求的。
用户需要考虑虚拟化方法,尤其是硬件虚拟化方法,需要借助其解决的主要是以下4个问题:
隔离性 - 每个用户实例之间相互隔离, 互不影响。 硬件虚拟化方法给出的方法是vm, lxc给出的方法是container,更细一点是kernel namespace
可配额/可度量 - 每个用户实例可以按需提供其计算资源,所使用的资源可以被计量。硬件虚拟化方法因为虚拟了cpu, memory可以方便实现, lxc则主要是利用cgroups来控制资源
移动性 - 用户的实例可以很方便地复制、移动和重建。硬件虚拟化方法提供snapshot和image来实现,docker(主要)利用aufs实现
安全性 - 这个话题比较大,这里强调是host主机的角度尽量保护container。硬件虚拟化的方法因为虚拟化的水平比较高,用户进程都是在kvm等虚拟机容器中翻译运行的, 然而对于lxc, 用户的进程是lxc-start进程的子进程, 只是在kernel的namespace中隔离的, 因此需要一些kernel的patch来保证用户的运行环境不会受到来自host主机的恶意入侵, dotcloud(主要是)利用kernel grsec patch解决的.
推荐教程:《docker》
以上就是docker 有性能损失吗?的详细内容。
其它类似信息

推荐信息