docker从理解到安装再到简单使用三部曲
第一步(docker的理解)
第二部(docker安装)
第三步(docker常用命令的总结)
docker的意义
- <1>简说
总的来说docker让数据传输更容易,同时让程序的运行不是很依赖环境,从而达到节约计算机资源的目的。 - <2>细说
当你看到这些优点时,可能理解了docker存在的意义,但是又引出了新问题——怎么理解这些优点,或者说这些优点的具体体现是什么?让我们以一个程序开发者的身份看这些问题。如果你是一个软件的开发者,开发出了一款软件以后需要考虑什么?要考虑软件在不同系统上的适配问题。就像Java环境分linux版、mac版和windows版一样,不同环境软件不一样。这导致软件开发过程中,开发人员不止要考虑程序本身,还要考虑运行问题。这会增加开发人员的工作量,同时在人文上使“运维”和“开发”掰扯不清楚,导致“开发没问题,运行有问题”,让责任不明确。而docker的发明使开发者的工作量更小,同时解决了责任不明的问题。
docker的组成
docker可以理解为一个程序
- <1>组成一:镜像
既然docker是一个程序,那必然有存储的地方,在理解docker镜像时可以把镜像理解为磁盘文件,值得一提的是镜像本身有自己的分层结构。了解更多镜像知识 - <2>组成二:容器
有文件就要有在内存上运行的地方,容器就可以理解为一个或多个在内存上的进程。 - <3>组成三:仓库
所谓仓库就是储存镜像的地方,最大的公共镜像仓库就是Docker hub
docker的原理
docker要实现的话要依赖,linux namespace、linux cgroup等,他们分别实现镜像和容器的隔离,和计算机资源的合理运用。这里只做浅谈,想要了解的朋友请自行搜索。
docker与虚拟机的对比
拿虚拟机来说,要实现虚拟机要在硬件层(hardsware layer)之上要通过虚拟化软件(hypervisor)形成虚拟层(vitualization)并分化出不同区域,搭建出不同的系统(host os),同时在虚拟层之上还有管理不同区域的工具——那VMware来说就是VMware workstation。docker则不必这么麻烦,因为他和实体计算机公用一套内核,所以占用资源较少。由此也可以发现,docker相比于虚拟机它与操作系统的联系更紧密。