Docker 从入门到实践(二)Docker 三个基本概念

1、Docker 的三个进本概念?

了解 Docker 的三个基本概念,就能够大体了解 Docker 的生命周期。ios

  1. 镜像(Image)
  2. 容器(Container)
  3. 仓库(Repository)

2、镜像

1.Docker 镜像

  咱们都知道,操做系统分为内核和用户空间。对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持。而 Docker 镜像(Image),就至关因而一个 root 文件系统。好比官方镜像  ubuntu:18.04  就包含了完整的一套 Ubuntu 18.04 最小系统的 root 文件系统。Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建以后也不会被改变ubuntu

2.分层存储

  由于 镜像包含了操做系统完整的 root 文件系统,其体积仍是很巨大的,因此引入了 Unios FS 技术,将其设计为分层存储的架构。因此镜像不是那种 ISO 打包文件,镜像是一个虚拟的概念,它是由一组文件系统构成,或者说多层文件系统联合构成。服务器

  镜像在构建时,是一层层构建,上一层是下一层的基础,每一层构建结束就不会在被修改,后一层任何修改只会做用在当前层。例如删除上一层文件,不会真的删除该文件,而是会标记删除而后隐藏起来,最终运行容器的时候不会被看见,可是会一直跟随镜像。所以构建镜像时须要当心,不要添加不须要的东西,任何额外的东西都要在本层构建完以前清除。网络

  分层存储使镜像的定制和复用变得容易,能够用以前作好的镜像做为基础层,而后添加新的层,定制本身所须要的东西,构建新的镜像。架构

3、容器

   镜像(Image)和容器(Conatiner)的关系就像是面向对象的类和实例同样,镜像是静态的定义,容器是镜像运行的实体,容器能够被建立,启动,中止,删除,暂停等。容器的实质是进程,可是又和宿主的进程不一样,容器有本身的独立命名空间,所以容器拥有本身 root 文件系统,本身的网络配置,本身的进程空间,甚至本身的用户 ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操做同样。因此好多初学者都会把容器和虚拟机搞混。容器一样和镜像同样使用分层存储,以镜像为基础层,在上面建立了一个容器存储层,是为了容器运行时读写准备的。注意,在容器被删除后,容器存储层保存的任何信息都不会保存,它和容器的生命周期同样,因此任何须要保存的数据 Docker 建议保存在数据卷(Volumes)或者宿主机目录中,这样数据不会随着容器的消失而消失。操作系统

4、仓库

  镜像构建完成后,能够很容易的在当前宿主机上运行,可是,若是须要在其它服务器上使用这个镜像,咱们就须要一个集中的存储、分发镜像的服务,Docker Registry 就是这样的服务。设计

一个 Docker Registry 能够有多个 仓库(Repository),每一个仓库能够含多个标签(Tag),每一个标签都是一个镜像。code

  最初我没有搞懂 Docker Registry 和 仓库(Repository),简单来讲就是 Docker Registry 是注册服务器,用于管理镜像仓库,起到服务器的做用,仓库(Repository)就是存储镜像,起到存储镜像的做用。默认的 Docker Registry 就是 Docker Hub,其中拥有不少高质量的镜像。对象

registry和repository区别

相关文章
相关标签/搜索