我正在一台 Linux 机器上工作。我大约 3-4 周前构建了一个 Docker 镜像,但我不记得 Dockerfile 位于哪里。
查找 Dockerfile 的最佳方式是什么?是否有可能以某种方式在给定图像的情况下获取其位置?
我尝试使用:
$ docker image inspect <image>
但它不显示此信息。
Docker 镜像不会在 Dockerfile 上存储任何信息,但您可以尝试对其进行逆向工程。对此有几种方法:
- Use
docker history <image-name> --no-trunc
,它将显示每一层的信息:
> docker history golang:1.14.2-alpine3.11 --no-trunc --format="{{.CreatedBy}}"
/bin/sh -c #(nop) WORKDIR /go
/bin/sh -c mkdir -p "$GOPATH/src" "$GOPATH/bin" && chmod -R 777 "$GOPATH"
/bin/sh -c #(nop) ENV PATH=/go/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
/bin/sh -c #(nop) ENV GOPATH=/go
...
-
https://github.com/CenturyLinkLabs/dockerfile-from-image https://github.com/CenturyLinkLabs/dockerfile-from-image-- 从 docker 镜像逆向工程 Dockerfile 的项目。你可以这样运行它:
docker run -v /var/run/docker.sock:/var/run/docker.sock \
centurylink/dockerfile-from-image <IMAGE_TAG_OR_ID>
-
dive https://github.com/wagoodman/dive实际上是用于调试/优化 docker 映像的工具,但在这种情况下可能会有所帮助
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)