我是一个运营人员,所以对开发不是很了解,看了一天的dokcer的文章和文档,仍旧有很多疑惑,我想从我自身的角度对docker提一些问题,希望可以得到解答,先谢过各位。
我已经了解docker基于内核的虚拟化,性能比Xen/Kvm这类提升很多。
那是否新建一个例如Centos/Ubuntu的容器,在里面的性能可以发挥到接近物理宿主?那如何理解物理机器自身的系统开销和容器内系统的自身开销?
例如我们常用的PHP运行环境是LAMP,我们会在物理主机上单独安装apache、php、mysql。
那我们是否可以在物理主机上将这些程序分别放到不同的容器?然后我的实际程序文件在单独的一个目录下面,我如何连接不同容器的程序去执行这些程序?如果我需要文件的安全隔离,我如何通过docker实现调用和共享?
我了解到目前docker主要应用于开发,但是在实际应用中,我们更多的要考虑容器的长久稳定、故障恢复(灾备?)、配额限制(好像目前只可以限制内存?)。
因为我有较多的运行中的服务器,此前机房提供过一个基于Vmware的虚拟化方案,单因为性能原因被我放弃。如果还是此前准备运行Vmware的服务器的话,我是否可以使用docker来实际运行我的N多网站?(目前有数十台网站服务器,部分无灾备,且每台服务器负载均不高)
可能提的问题不甚专业,望大神解答
天蓬老师2017-04-21 10:58:22
1、因為docker是基於lxc的封裝,是容器級別的,你可以將其理解為進程組,只是在其看來,整個系統環境是其獨享的,與宿主和其他容器隔離了,它是直接運行於實體機器的;開銷的理解你可以認為多運行了很多進程,目前的機器,很少會跑滿的,而vm級別的虛擬方式,大量的計算資源和存儲資源都耗費在VM的OS上面了;
2、可以將環境分佈在不同的容器裡面;透過docker的-v參數可以映射宿主目錄到容器的指定目錄;呼叫和共享可以有多種方式,-v是一種,也可以採用常規的ftp ,scp等,這時候,你把容器理解為虛擬機器就可以了;
3、docker的應用範圍完全取決於你的想像了,可以將其包裝為paas,也可以將其直接作為虛擬機分配,或者作為應用的完整打包方案等等;至於與虛擬化方案,可以直接使用docker來運行網站,Google在其雲端服務中開始加入docker支援了,目前openstack和cloudfundry也開始支援了。