Docker镜像和容器的区别有哪些

今天小编给大家分享一下Docker镜像和容器的区别有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

站在用户的角度思考问题,与客户深入沟通,找到庄河网站设计与庄河网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计、网站制作、企业官网、英文网站、手机端网站、网站推广、域名注册网站空间、企业邮箱。业务覆盖庄河地区。

docker的镜像和容器的区别        

一、docker镜像

要理解docker镜像和docker容器之间的区别,确实不容易。

假设linux内核是第0层,那么无论怎么运行docker,它都是运行于内核层之上的。这个docker镜像,是一个只读的镜像,位于第1层,它不能被修改或不能保存状态。

一个docker镜像可以构建于另一个docker镜像之上,这种层叠关系可以是多层的。第1层的镜像层我们称之为基础镜像(base image),其他层的镜像(除了最顶层)我们称之为父层镜像(parent image)。这些镜像继承了他们的父层镜像的所有属性和设置,并在dockerfile中添加了自己的配置。

docker镜像通过镜像id进行识别。镜像id是一个64字符的十六进制的字符串。但是当我们运行镜像时,通常我们不会使用镜像id来引用镜像,而是使用镜像名来引用。要列出本地所有有效的镜像,可以使用命令

# docker images

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

neo4j镜像有两个版本:lastest版本和2.1.5版本。

可以使用pull命令加上指定的标签:

# docker pull ubuntu:14.04
# docker pull ubuntu:12.04

二、docker容器

docker容器可以使用命令创建:

# docker run imagename

它会在所有的镜像层之上增加一个可写层。这个可写层有运行在cpu上的进程,而且有两个不同的状态:运行态(running)和退出态(exited)。这就是docker容器。当我们使用docker run启动容器,docker容器就进入运行态,当我们停止docker容器时,它就进入退出态。

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

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

如果对容器的底层镜像进行修改,那么当前正在运行的容器是不受影响的,不会发生自动更新现象。

如果想更新容器到其镜像的新版本,那么必须当心,确保我们是以正确的方式构建了数据结构,否则我们可能会导致损失容器中所有数据的后果。

64字符的十六进制的字符串来定义容器id,它是容器的唯一标识符。容器之间的交互是依靠容器id识别的,由于容器id的字符太长,我们通常只需键入容器id的前4个字符即可。当然,我们还可以使用容器名,但显然用4字符的容器id更为简便。

以上就是“Docker镜像和容器的区别有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注创新互联行业资讯频道。


标题名称:Docker镜像和容器的区别有哪些
标题来源:http://myzitong.com/article/gdgiog.html