我是一个运营人员,所以对开发不是很了解,看了一天的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 패키징을 기반으로 하며 컨테이너 수준에 있으므로 프로세스 그룹으로 이해하면 됩니다. 그러나 전체 시스템 환경은 docker에 배타적이며 호스트 및 기타 환경과 격리되어 있습니다. 컨테이너는 물리적 머신에서 직접 실행됩니다. 오버헤드를 이해하려면 훨씬 더 많은 프로세스를 실행하는 것을 생각할 수 있습니다. 현재 머신은 거의 가득 차지 않으며 VM 수준 가상화에서는 많은 컴퓨팅 리소스와 스토리지 리소스가 소비됩니다. OS의 VM;
2. 환경은 다양한 컨테이너에 배포될 수 있습니다. 호스트 디렉터리는 docker의 -v 매개변수를 통해 컨테이너의 지정된 디렉터리에 매핑될 수 있습니다. -v는 하나입니다. 일반 ftp, scp 등을 사용할 수 있습니다. 이때는 컨테이너를 가상 머신으로 이해하면 됩니다.
3. docker의 적용 범위는 전적으로 사용자의 상상에 달려 있습니다. paas로 패키징할 수도 있고, 가상 머신으로 직접 할당할 수도 있고, 가상화 솔루션의 경우 완벽한 패키징 솔루션으로 사용할 수도 있습니다. docker를 사용하여 웹 사이트를 직접 실행할 수 있습니다. Google은 현재 클라우드 서비스에 docker 지원을 추가하기 시작했습니다.