docker基础 | 镜像的介绍

    作者:课课家教育更新于: 2016-12-22 16:05:03

      要想学习Docker,基础的一些东西还是需要掌握了解的,如果是关注课课家的朋友们或者会知道,简单的理解就是docker是基于容器层面的调度,可以理解为一种更加轻量的虚拟机,不仅是能够更好的去满足快速部署和资源调度的性能速度,本文来讲一下它的基础知识,对镜像的理解。

      我们需要知道的是在Docker的专业术语里面,一个只读层它是被称为镜像,那么一个镜像它是永久不会变的。

      因为Docker它是使用一个统一文件系统,Docker它的进程认为整个文件系统是以读写方式挂载的,但在所有的变更中都发生顶层的可写层,而如果是下层的原始的只读镜像文件并未变化。因为镜像是不可写的,所以的话镜像它是处于一个无状态的情况。

    docker基础 | 镜像的介绍_docker_云计算_镜像_课课家

      第一:Docker镜像

      如果想要深入的去理解Docker镜像和Docker容器之间的区别,这确实是有那么一点的难度的,需要认真仔细的去辨别。

      假如Linux内核是第0层,则无论是怎样去运行Docker,也只是运行于内核层之上的。这个Docker镜像,只是一个只读的镜像,位于第1层,需要知道的是它不能被修改或是不能保存的一个状态。

      需要知道的是一个Docker镜像可以构建于另一个Docker镜像之上,这样的层叠关系它可以是多层的。第1层的镜像层我们称之为基础镜像(BaseImage),其他层的镜像(除了最顶层)称他为父层镜像(ParentImage)。这些镜像它是继承了他们的父层镜像的所有属性和基本的一些设置,并且是在Dockerfile中添加了自己的配置。

      Docker镜像它是通过镜像ID来进行识别,镜像ID什么一个东西呢?它其实就是一个64字符的十六进制的字符串,当运行镜像时,一般我们不会使用镜像ID来引用镜像,是使用镜像名来做引用,如果是要列出本地所有有效的镜像,可以使用命令 #docker images

      镜像可以发布为不同的版本,这样的机制我们称之为标签(Tag)。

      第二:docker容器

      要想创建Docker容器,则是可以使用命令创建:

      #docker run imagename

      该命令的话,是可以在所有的镜像层之上增加一个可写层。这个可写层有运行在CPU上的进程,并且又是有两个不同的状态:第一个是运行态(Running)还有就是退出态(Exited)。这就是Docker容器。当我们使用dockerrun启动容器,那么Docker容器就进入运行态,当我们停止Docker容器时,那么它就会进入一个退出的状态。

      如果我们是有一个正在运行的Docker容器时,如果是从运行态到停止的状态,因此我们对它所做的一切变更它都会永久地写到容器的文件系统中。需要记住的是对容器的变更是写入到容器的文件系统的,而不是写入到Docker镜像中的。

      可以用同一个镜像启动多个Docker容器,这些容器当启动之后都是活动的,彼此还是相互隔离的一个状态。如果我们只是对其中一个容器所做的变更则只会局限于那个容器本身。

      小结:在实际的使用中如果对容器的底层镜像进行修改,则当前正在运行的容器一般都是不受影响的,并不会发生自动更新的一个麻烦的现象,在接下里的一个课程学习中,我们将持续的帮助大家进行板块化的学习。

课课家教育

未登录

1