如何理解docer?

  • 来源:网络
  • 更新日期:2020-07-02

摘要:Docker,可以说是一个终端命令行的虚拟机,但更准确的说法,其实应该是一个虚拟环境。(推荐教程:docker教程)比如,你想要在PC上无缝使用Linux么?那么虚拟机并不是你唯一的出路,你还有Doc

Docker,可以说是一个终端命令行的虚拟机,但更准确的说法,其实应该是一个虚拟环境。

(推荐教程:docker教程)

比如,你想要在PC上无缝使用Linux么?那么虚拟机并不是你唯一的出路,你还有Docker!我更愿意称Docker为一个容器,当然这只是Docker的一个狭义解释,Docker不止是一个容器。

Docker包含3个重要概念,分别是:

一、镜像(Image)

镜像是静态的、可以被用户互相分享的文件。

我们玩过双系统和虚拟机的人都知道,首先你需要一个.iso镜像,才能安装系统。Docker中的镜像也是这个东西,镜像是静态的,你不能对他操作,只能pull别人的镜像或者push自己的镜像。

二、容器(Container)

镜像是静态不可操作的,只能被分享和下载,那什么是能被操作的呢?

就是容器。容器可以理解为镜像的动态状态,也就是我们虚拟机中系统装好后的状态。其实这么说是不对的,容器最符合的描述应该是Linux的iso文件的Live CD模式。

比如我们玩双系统时都进入过Live CD模式,不安装系统而直接进入系统,Docker的容器就是这个概念,只不过更加轻量更加迅速便捷。但是Live CD的坏处就是你关机后作出的修改安装的软件全部gg,容器也是一样,一旦被直接推出,之前安装的gcc、vim等就会全部gg掉。

如果要保存修改,就需要将当前容器封装成一个新的镜像,这样下次启动这个新的镜像后之前作出的修改还都在。

三、仓库(Repository)

不知道各位对于git熟悉不熟悉,Docker中的仓库很像git的代码仓库,你可以pull自己之前push到自己仓库的镜像到本地,也可以pull别人push到公共仓库的镜像到自己本地,说白了就像百度云盘,你可以上传(push)自己做好环境的Docker上去,也可以下载(pull)自己云端的镜像到本地。

同时,我们知道百度云最大的特点就是分享,类比Docker,如果你得到百度云分享链接(别人的镜像名字、标签和别人的用户名),你还可以下载(pull)别人分享的镜像到自己的本地,别人也可以下载(pull)你的镜像,因为Docker仓库都是公共的。

当然,每个免费用户有一个名额把自己的一个镜像设为私有,也就是禁止被分享给别人。