何谓Docker镜像?详解。
2018-08-13 09:58
148 查看
转载自:https://blog.csdn.net/xfyimengweima1314/article/details/79046873
镜像是Docker容器的基石,容器是镜像的运行实例,有了镜像才能启动容器。
base镜像----提供了一个基本的操作系统环境,用户可以根据需要安装和配置软件 base镜像通常是各种Linux发行版的Docker镜像比如ubuntu、Debian、centos等。 base镜像只是在用户空间与发行版一致,kernel版本与发行版是不同的。比如说虚机系统是ubuntu14.04,运行一个容器是centos系统的,那么centos使用的其实就是本虚机的kernel。 容器只能使用本地虚机的kernel且不能修改。
每一个镜像都会有一个文本文件Dockerfile,定义了如何构建Docker镜像。编写Dockerfile文件有专门的讲解,百度一下~
镜像的分层结构:DockerHub中绝大多数的镜像都是通过在base镜像中安装和配置需要的软件构建出来的。base镜像是from scratch开始,新镜像是直接在base镜像上构建from centos...... 新镜像是从base镜像一层一层叠加生成的,每安装一个软件就等于在现有的镜像上增加一层。 Docker镜像采用分层结构的好处就是共享资源。
可写的容器层:当容器启动时,一个新的可写层被加载到镜像的顶部,这一层就叫容器层,容器层之下都叫镜像层。只有容器层是可写的,容器层下面的所有镜像层都是只读的。对容器的任何改动都只会发生在容器层中。 这里,所有的镜像层联合一起组成一个统一的文件系统,用户在容器层看到的就是一个叠加之后的文件系统。镜像层内部是有上下之分的: - 添加文件:在容器中创建文件时,新文件被添加到容器层中。 - 读取文件:当在容器中读取某个文件时,Docker会从上往下依次在各镜像层中查找此文件,一旦找到打开并读入内存。 - 修改文件:在容器中修改已存在的文件时,Docker会从上往下依次在各个镜像层中查找此文件,一旦找到立即将其复制到容器层中,然后才修改。(copy-on-write特性) - 删除文件:在容器中删除文件时,Docker会从上往下依次在镜像层中找,找到后,会在容器层记录下此删除操作。 copy-on-write特性说明容器层保存的是镜像变化的部分,不会对镜像本身进行任何修改。所以镜像可以被多个容器共享。阅读更多
相关文章推荐
- Docker中的镜像分层技术详解
- docker 镜像详解
- 详解docker使用阿里云Docker镜像库加速(修订版)
- 详解Docker创建支持ssh服务的容器和镜像
- 详解Docker 修改已有镜像(commit )
- 详解Docker 容器基础系统镜像打包
- Dockerfile制作官方Tomcat镜像及镜像使用详解
- 利用Docker制作Nginx+PHP镜像的步骤详解
- 详解Docker学习之用commit命令创建镜像
- Docker镜像上传到阿里云的步骤详解
- 详解Docker 国内镜像的配置及使用
- 详解docker pull 下来的镜像文件存放的位置
- 如何删除docker-register镜像及none无效镜像详解
- Docker镜像和容器系列(二)- 操作详解
- 【容器技术】Docker中的镜像分层技术详解
- 详解给Ocelot做一个Docker镜像
- 详解利用Dockerfile构建mysql镜像并实现数据的初始化及权限设置
- 详解docker使用阿里云Docker镜像库加速(修订版)
- 详解如何修改docker pull镜像源
- 详解docker下的Mysql镜像的使用方法