首页 > 开发 > 云计算 > 正文

关于docker的入门疑惑

2017-09-12 09:52:43  来源: 网友分享

我是一个运营人员,所以对开发不是很了解,看了一天的dokcer的文章和文档,仍旧有很多疑惑,我想从我自身的角度对docker提一些问题,希望可以得到解答,先谢过各位。

1. docker的性能?

我已经了解docker基于内核的虚拟化,性能比Xen/Kvm这类提升很多。
那是否新建一个例如Centos/Ubuntu的容器,在里面的性能可以发挥到接近物理宿主?那如何理解物理机器自身的系统开销和容器内系统的自身开销?

2. docker内容器的整合和文件系统的共享?

例如我们常用的PHP运行环境是LAMP,我们会在物理主机上单独安装apache、php、mysql。
那我们是否可以在物理主机上将这些程序分别放到不同的容器?然后我的实际程序文件在单独的一个目录下面,我如何连接不同容器的程序去执行这些程序?如果我需要文件的安全隔离,我如何通过docker实现调用和共享?

3. 应用范围?

我了解到目前docker主要应用于开发,但是在实际应用中,我们更多的要考虑容器的长久稳定、故障恢复(灾备?)、配额限制(好像目前只可以限制内存?)。
因为我有较多的运行中的服务器,此前机房提供过一个基于Vmware的虚拟化方案,单因为性能原因被我放弃。如果还是此前准备运行Vmware的服务器的话,我是否可以使用docker来实际运行我的N多网站?(目前有数十台网站服务器,部分无灾备,且每台服务器负载均不高)

可能提的问题不甚专业,望大神解答

解决方案

1、因为docker是基于lxc的封装,是容器级别的,你可以将其理解为进程组,只是在其看来,整个系统环境是其独享的,与宿主和其他容器隔离了,它是直接运行于物理机器的;开销的理解你可以认为多运行了很多进程,目前的机器,很少会跑满的,而vm级别的虚拟方式,大量的计算资源和存储资源都耗费在VM的OS上面了;

2、可以将环境分布在不同的容器里面;通过docker的-v参数可以映射宿主目录到容器的指定目录;调用和共享可以有多种方式,-v是一种,也可以采用常规的ftp,scp等,这个时候,你把容器理解为虚拟机就可以了;

3、docker的应用范围完全取决于你的想象了,可以将其包装为paas,也可以将其直接作为虚拟机分配,或者作为应用的完整打包方案等等;至于与虚拟化方案,可以直接使用docker来运行网站,Google在其云服务中开始加入docker支持了,目前openstack和cloudfundry也开始支持了。