本文内容均来自个人笔记并重新梳理,如有错误欢迎指正!
如果对您有帮助,烦请点赞、关注、转发、订阅专栏!
专栏订阅入口
| 精选文章 | Kubernetes | Docker | Linux | 羊毛资源 | 工具推荐 |
往期精彩文章
【Docker】(全网首发)Kylin V10 下 MySQL 容器内存占用异常的解决方法
目录
一、背景介绍
【Docker】专题三:Dockerfile 相关 中提到,Dockerfile 中的部分指令(如 RUN、COPY、ADD)在构建 Docker 镜像时会增加镜像的层数。本文将以 RUN 指令为例,进一步演示和分析其对 Docker 镜像层数的影响效果。
二、演示过程
1、非精简指令构建镜像
- Dockerfile-1 文件内容如下
# 指定基础镜像
FROM alpine
# 指定 RUN 指令(两条命令,分别实现创建文件、删除文件)
RUN echo "This is demo_content" > /tmp/1.txt
RUN rm -rf /tmp/1.txt
- 构建 Docker 镜像
docker build -t alpine:demo-1 -f Dockerfile-1 .
- 查看 Docker 镜像分层信息
docker history alpine:demo-1 --no-trunc
- 查看 Docker 镜像分层 ID
- 如图,该镜像有三个 layer 分层
- 第一个分层:表示基础镜像
- 第二个分层:对应第一条 RUN 指令,我们记录该镜像分层的 ID
- 第三个分层:对应第二条 RUN 指令
- 如图,该镜像有三个 layer 分层
alias dive="docker run -ti --rm -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive"
dive alpine:demo-1
- 查看 Docker 镜像分层文件
# 将 Docker 镜像保存为 tar 文件
docker save alpine:demo-1 -o demo-1.tar
# 查看 tar 文件内容
tar -xf demo-1.tar
cd 0e5986017b9df1a7163da7e70a44e72d951ddfebaf2b157eddcf00439bc76ebb
tar -xf layer.tar
cat tmp/1.txt
标签:RUN,tar,demo,分层,层数,镜像,Docker,Dockerfile
From: https://blog.csdn.net/2401_82795112/article/details/143304849