一.简介
Dockerfile是一个文本文件,可以使用命令自定义构建镜像。
镜像构造完成后能不能使用镜像来反向查看dockerfile呢?
在平时学习或运维工作中,如何看别人生成镜像的dockerfile怎么写的?
这时可以使用逆向分析Dockerfile的命令或工具,了解镜像是如何构建的,获取构建过程中的信息。
二.方法
1.dedockify工具 完全展示Dockerfile的内容,与Dockerfile原始格式一样,推荐使用
docker pull mrhavens/dedockify
alias dedockify="docker run -v /var/run/docker.sock:/var/run/docker.sock --rm mrhavens/dedockify"
dedockify 镜像ID
2.docker history 不会完全展示Dockerfile的内容,倒序展示,与Dockerfile原始格式有差异
docker history --no-trunc --format '{{.CreatedBy}}' 镜像名或镜像ID
3.dfimage工具 不完全展示Dockerfile的内容,与Dockerfile原始格式接近
docker pull alpine/dfimage
alias dfimage="docker run -v /var/run/docker.sock:/var/run/docker.sock --rm alpine/dfimage"
dfimage 镜像名或镜像ID
4.whaler工具 不完全展示Dockerfile的内容,与Dockerfile原始格式接近
docker pull pegleg/whaler
alias whaler="docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro pegleg/whaler"
whaler 镜像名或镜像ID
5.dive工具 不完全展示Dockerfile的内容,与Dockerfile原始格式接近,交互式操作
wget https://github.com/wagoodman/dive/releases/download/v0.9.2/dive_0.9.2_linux_amd64.rpm
yum install -y dive_0.9.2_linux_amd64.rpm
dive 镜像名或镜像ID