镜像与容器
镜像是构建docker的基石,用户基于镜像运行自己的容器。镜像也是docker生命周期中“构建部分”。镜像是基于联合文件系统的一种层式结构,由一系列指令一步一步构建出来。例如:
添加一个文件:
执行一个命令:
打开一个窗口:
也可以将镜像当做容器的“源代码”,镜像体积很小,非常便携,易于分享、储存和更新。
docker可以帮助你构建和部署容器,你只需要把自己的应用程序或者服务打包放入容器即可,容器是基于镜像启动起来的,容器中可以运行一个或者多个进程,我们可以认为,镜像是docker容器生命周期中的构建或者打包阶段。而容器是启动或者执行阶段。容器是基于镜像启动的,一旦容器启动完成后,我们就可以登录到容器中安装自己需要的软件或者服务了。
所以docker容器就是:
一个镜像格式:
一些列标准模式:
一个执行环境:
docker借鉴了标准集装箱得概念,标准集装箱将货物运往各地,docker将这个模型运用到自己的设计中,唯一不同的是,集装箱运输货物,而docker运输软件。
和集装箱一样,docker在执行上述操作是,并不关心容器中装的是什么,他不管是问服务器,还是数据库,或者是其他应用程序,所有的容器都按照相同的方式装载进去。
docker不关心你把容器运到什么地方,我们可以在自己的笔记本电脑中构建容器,上传到Registry,然后下载到一个物理的或者虚拟的服务器来测试,再把容器部署到具体的主机中,像标准集装箱一样。
docker容器方便替换,方便叠加,易于分发,并且尽量通用。
注册中心(Registry)
docker用Registry来保存用户构建的镜像。Registry分为公共和私有两种,docker公司运营公共Registry交Docker Hub,用户可在Docker Hub上注册账号,分享并保存自己的账号(说明:在Docker Hub上下载镜像巨慢,可以自己构建私有的Registry)