作者:三十
来源:恒生LIGHT云社区
Docker是如何组织存储的
dokcer在组织存储内容时很巧妙的应用了分层复用的思想。所以我们可以以此为案例学习一下该思想。
1.镜像分层
一个Docker镜像在构建的过程中分了很多层,每一层都是只读的。结合下面例子进行说明:
# syntax=docker/dockerfile:1
FROM ubuntu:18.04
LABEL org.opencontainers.image.authors="org@example.com"
COPY . /app
RUN make /app
RUN rm -r $HOME/.cache
CMD python /app/app.py
这个Dockerfile中会有4条指令改变了文件系统并创建了新层。
FROM
指令从ubuntu:18.04的镜像中创建了基础层。LABEL
指令仅仅修改了镜像的元数据,不会创建新层。COPY
指令将执行本次构建的当前目录中的内容添加到镜像当中,会创建一个新层记录改变。- 第一个
RUN
指令,构建了程序并将结果输出到镜像中,会创建一个新层记录改变。 - 第二个
RUN
指令,删除了缓存目录,会创建一个新层记录改变。 CMD
指令定义了容器中运行的指令,只是修改了镜像的元