如何从正在运行的Docker映像中查找提交哈希

时间:2020-07-30 17:05:48

标签: git image docker docker-swarm

我目前正在构建图像,并使用提交哈希标记它们。然后,我拉出该图像并运行它(通过提交哈希或q)x insert y 'type [0] x insert y ^ q)x upsert y time datum ------------------------------------------ 2020.07.27T20:28:18.925 `FOO 1084300i 1.5 2020.07.28T20:28:18.925 `FOO 1084300i 1.5 2020.07.29T23:51:10.790 725 1369 663 2020.07.30T23:51:10.790 9478 1588 8660 标签)。如何从正在运行的映像内部找出提交哈希?

我目前所知道的只是容器latest。因此,如果容器正在运行,我可以获取摘要:

hostname

然后从摘要中,我可以在Dockerhub上搜索以找到链接到摘要的标签(不确定如何操作),然后该标签具有链接到其的提交哈希。

不幸的是,如果容器仍未处于活动状态,则会收到错误消息:

docker inspect --format='{{.Config.Image}}' hostname

还有其他方法吗?

1 个答案:

答案 0 :(得分:2)

您可以尝试的一种方法是在环境变量中设置commit hash,因此您也可以从图像中获取ENV

docker --build-arg GIT_COMMIT=$(git rev-parse HEAD) my_image:$(git rev-parse HEAD)

和Dockerfile

FROM alpine
ARG GIT_COMMIT
ENV GIT_COMMIT=$GIT_COMMIT

现在您可以从环境中获得GIT_COMMIT

echo "${GIT_COMMIT}"