docker镜像的传输分层;因为docker镜像是分层构建的,将构建镜像的过程拆解,找到和其他服务的共同点,将其制定为一个基础镜像,Dockerfile中每条指定都会新建一个层。这样可以节省磁盘空间,所以docker镜像的传输分层。
本教程操作环境:linux7.3系统、docker19.03版、Dell G3电脑。
镜像是一种轻量级、可执行的独立软件包,它包含运行某个软件所需要的所有内容。我们将应用程序、配置打包成一个成型的、可交付、可部署的运行环境,包括代码、运行时所需要的库、环境变量和配置文件等,这个大包好的运行环境就是image镜像文件。
只有通过镜像文件才能生成Docker容器实例。
docker镜像分层
含义:将构建镜像的过程拆解,找到和其他服务的共同点,将其制定为一个基础镜像。
优点:节省磁盘空间,
上传/下载镜像时,基础镜像如果已存在就不会重复上传下载,提高上传下载速度
缺点:改动基础镜像,所有子镜像都会变动。
Docker镜像分层机制
Docker镜像是分层构建的,随着我们深入学习Docker,我们会理解到Dockerfile中每条指定都会新建一个层。以下面Dockerfile指令为例:
FROM ubuntu:20.04#基础镜像 COPY . /app#复制文件 RUN make /app#编译文件 CMD python /app/app.py#入口文件
以上四条指令,在每一层上只记录本层所做的更改,而且这些层是只读层。当启动一个容器,Docker指挥在最顶部添加读写层,在容器内作的所有更改(写日志、修改、删除文件等,都保存到读写层内),一般称该层为容器层,如下图所示:
事实上,容器(container)和镜像(image)的最主要区别就是容器加上了顶层的读写层。所有对容器的修改都发生在此层,镜像并不会被修改,也即前面说的 COW(copy-on-write)技术。容器需要读取某个文件时,直接从底部只读层去读即可,而如果需要修改某文件,则将该文件拷贝到顶部读写层进行修改,只读层保持不变。
每个容器都有自己的读写层,因此多个容器可以使用同一个镜像,另外容器被删除时,其对应的读写层也会被删除,如果你希望多个容器共享或者持久化数据,可以使用 Docker volume。
推荐学习:《docker视频教程》
以上是docker镜像的传输分层吗的详细内容。更多信息请关注PHP中文网其他相关文章!