简介
想获取指定镜像的Dockerfile,但是docker history查看到的并不全。试试以下方式
dfimage镜像
dfimage 是一个镜像的名称,由 alpine 官方制作的,其实里面运行了一个工具,叫做 Whaler
Whaler是用Go语音编写的,他的工作过程就是反向讲镜像还原成Dockerfile
官方有现成的镜像(只有x86版本的,如果要arm版本的用下面的Dockerfile方式编译):
镜像链接
如果想自己编译,可以参考以下方式:
wget https://github.com/P3GLEG/Whaler/archive/refs/heads/master.zip
unzip master.zip
cp Whaler-master/Dockerfile .
vim Dockerfile
FROM golang:1.14.4 AS builder
# 把 golang 的代理换成国内的,不然会 timeoout
ENV GOPROXY=https://goproxy.cn
ADD ./Whaler-master /root/whaler_build
WORKDIR /root/whaler_build
RUN export CGO_ENABLED=0 && go build .
RUN cp whaler /root/whaler
FROM alpine:3.12.0
WORKDIR /root/
COPY --from=builder /root/whaler .
ENTRYPOINT ["./whaler"]
docker build -t whaler:latest .
添加命令别名,方便以后使用
alias whaler="docker run -t --rm -v /var/run/docker.sock:/var/run/docker.sock:ro whaler"
如果报错:
Error response from daemon: client version 1.41 is too new. Maximum supported API version is 1.40
使用参数-sV 1.40(版本根据提示报错的版本,并非所有都是1.40)
以下是使用方法:
whaler -sV=1.40 镜像名字