Docker分层

Docker 的分层结构
基础层(Base Layer):

这是镜像的最底层,通常由 FROM 指令指定。例如,FROM ubuntu:20.04 会拉取 Ubuntu 20.04 的基础镜像作为第一层。

中间层(Intermediate Layers):

每一行 Dockerfile 指令(如 RUN、COPY、ADD 等)都会生成一个新的只读层。

这些中间层叠加在基础层之上,构成了完整的镜像。

镜像层(Image Layers):

基础层 + 中间层 = 镜像层。

镜像层是只读的,不可修改。

容器层(Container Layer):

当基于镜像启动容器时,Docker 会在镜像层之上添加一个可写层(Writable Layer),也称为容器层。

容器层是唯一的可写层,所有对容器的修改(如创建文件、修改配置等)都会记录在这一层。

公式
镜像层数 = 基础层(1 层) + 中间层(取决于 Dockerfile 指令数量)。

容器层数 = 镜像层数 + 1(容器层)。

示例
假设有一个 Dockerfile:

dockerfile
复制
FROM ubuntu:20.04 # 基础层(1 层)
RUN apt-get update # 中间层(1 层)
RUN apt-get install -y nginx # 中间层(1 层)
COPY app /app # 中间层(1 层)
CMD [“nginx”, “-g”, “daemon off;”] # 中间层(1 层)
镜像层数:

基础层:1 层。

中间层:4 层。

总镜像层数 = 1 + 4 = 5 层。

容器层数:

镜像层数:5 层。

容器层:1 层。

总容器层数 = 5 + 1 = 6 层。

总结
镜像层 = 基础层 + 中间层。

容器层 = 镜像层 + 1(可写层)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值