0%

docker一些概念

docker是一种linux容器技术。容器有效的将由单个操作系统挂管理的资源划分到孤立的组中,以便更好的在组之间平衡有冲突的资源使用需求,可简单理解为一种沙盒。每个容器内运行一个应用,不同的容器之间相互隔离,容器之间也可以建立通信机制。容器的创建和停止都十分快速,资源需求远远低于虚拟机。今天咱们来聊聊docker的一些概念,特此记录!

一、镜像

  1. docker的镜像概念类似虚拟机的镜像,可以将他理解为一个面向Docker引擎的只读模板,包含了文件系统,包括运行容器所需的数据,可以用来创建新的容器。
    • 如命令:docker create image_id,它的意思是为指定的镜像添加一个可读写层,构成一个新的容器
  2. docker镜像实际上是由一层一层的系统文件组成,这种层级的文件系统被称为UnionFS(Union file system,统一文件系统)。
  3. docker镜像可以基于dockerfile构建,dockerfile是一个描述文件,里面包含了若干条密令,每条命令都会对基础文件系统创建新的层次结构。
  4. docker镜像是创建docker容器的基础,通过版本管理和增量的文件系统,docker提供了一套十分简单的机制来创建和更新现有的镜像,用户甚至可以从其他人那里下载一个已经做好的镜像直接使用并通过命令直接使用。总之,应用运行是需要环境的,而镜像就是来提供这种环境。
  5. 镜像是只读的,可以理解为静态文件。

二、容器

  1. docker容器类似于一个轻量级的沙箱子,docker利用容器来运行和隔离应用。
  2. 容器从镜像启动的时候,docker会在镜像的最上一层创建一个可写层,镜像本身是只读的,保持不变。

三、仓库

  1. docker仓库(repository)类似于代码仓库,是docker集中存放镜像文件的场所。
  2. docker仓库是用来包含镜像的位置,docker提供了一个注册服务器(register)来保存多个仓库,每个仓库又可以包含多个具备不同tag的镜像。
  3. docker运作中使用的默认仓库是docker hub公共仓库。
  4. 仓库支持的操作类似git,当用户创建了自己的镜像之后就可以使用push命令将它上传到共有或者私有的仓库。这样下次再另外一台机器上使用这个镜像的时候只需要从仓库里面pull下来就可以了。