微服务弹性资源管理平台构建(二)
Docker
docker是一个开源的应用容器引擎,管理容器。
开发者打包应用以及依赖包到可移植的容器中,发布成镜像。
发布好的镜像不依赖于任何语言、框架以及系统,PODA,一次发布,随处部署(需要安装docker引擎)。
1、docker引擎安装:(这个我还没有做好,做好提供安装步骤)
学习环境搭建:windows下安装一个vmware,虚拟机中的操作系统可以随意,老师演示的时候使用的是ubuntu。在vm中安装docker引擎。
2、docker发版镜像(这个我还没有做好,做好提供操作步骤)
启动docker,包docker看做一个单独的操作系统,在上面部署自己的应用程序,没有问题后发版镜像。
3、docker理论:
docker是一种虚拟化技术,使用起来类似于vmware安装操作系统。docker做了操作系统级隔离,对文件系统/网络硬件/进程/cpu/memory都做了隔离。
所以在微服务实践中,我们可以在docker的一个容器中部署一个应用服务,然后指定这个容器在操作系统中的占比,例如:
有一个8核16g的服务器,我们可以指定我们的容器使用2个cpu*2g的内存。
但是,需要注意的是:docker并没有对服务器的磁盘做隔离,我们并不能指定一个容器只对哪块磁盘做读写。所以docker容器中只适合部署无状态的应用服务,不建议部署数据存储类型的应用。
docker架构图
Docker VS VM
1、docker是操作系统级封装,虽然对文件系统、硬件资源、cpu、memory都做了隔离,但他本质还是操作系统的一个进程;
虽然他看上去像是一个系统一样独立,但是他并没用vm中安装操作系统那么笨重,非常的轻量级,说简单的,他是在操作系统层面上对系统资源的隔离后再分配。
(再提一下,docker没有对disk隔离,所以只能做应用技术层面的应用部署,数据层面的可以安装,但是存储空间不隔离)
2、docker是一个进程级别的消耗,vm是操作系统级别的消耗,具有百倍的差异。
3、镜像大小:docker镜像的大小忽略内部应用服务大小,一般只有2mb。
4、启动:docker是进程启动,忽略内部应用启动,一个容器启动一般在15s,而一个操作系统启动至少要10分钟。
------------------------------------未完待续------------------------