用户登录
用户注册

分享至

docker镜像的传输分层吗

  • 作者: 用户17014497
  • 来源: 51数据库
  • 2022-10-11

docker镜像的传输分层;因为docker镜像是分层构建的,将构建镜像的过程拆解,找到和其他服务的共同点,将其制定为一个基础镜像,Dockerfile中每条指定都会新建一个层。这样可以节省磁盘空间,所以docker镜像的传输分层。

本教程操作环境:linux7.3系统、docker19.03版、Dell G3电脑。

docker镜像的传输分层

镜像是一种轻量级、可执行的**软件包,它包含运行某个软件所需要的所有内容。我们将应用程序、配置打包成一个成型的、可交付、可部署的运行环境,包括代码、运行时所需要的库、环境变量和配置文件等,这个大包好的运行环境就是image镜像文件。

只有通过镜像文件才能生成Docker容器实例。

docker镜像分层

含义:将构建镜像的过程拆解,找到和其他服务的共同点,将其制定为一个基础镜像。

优点:节省磁盘空间,

上传/下载镜像时,基础镜像如果已存在就不会重复上传下载,提高上传下载速度

缺点:改动基础镜像,所有子镜像都会变动。

Docker镜像分层机制

Docker镜像是分层构建的,随着我们深入学习Docker,我们会理解到Dockerfile中每条指定都会新建一个层。以下面Dockerfile指令为例:

FROM ubuntu:20.04#基础镜像
COPY . /app#复制文件
RUN make /app#编译文件
CMD python /app/app.py#入口文件

以上四条指令,在每一层上只记录本层所做的更改,而且这些层是只读层。当启动一个容器,Docker指挥在最顶部添加读写层,在容器内作的所有更改(写日志、修改、删除文件等,都保存到读写层内),一般称该层为容器层,如下图所示:

07.png

事实上,容器(container)和镜像(image)的最主要区别就是容器加上了顶层的读写层。所有对容器的修改都发生在此层,镜像并不会被修改,也即前面说的 COW(copy-on-write)技术。容器需要读取某个文件时,直接从底部只读层去读即可,而如果需要修改某文件,则将该文件拷贝到顶部读写层进行修改,只读层保持不变。

每个容器都有自己的读写层,因此多个容器可以使用同一个镜像,另外容器被删除时,其对应的读写层也会被删除,如果你希望多个容器共享或者持久化数据,可以使用 Docker volume。

软件
前端设计
程序设计
Java相关