Вы можете использовать метод, предложенный в этом ответе: https://stackoverflow.com/a/53841690/3691891
Сначала потяните chenzj/dfimage
:
docker pull chenzj/dfimage
Получите ID вашего изображения:
docker images | grep <IMAGE_NAME> | awk '{print $3}'
Замените <IMAGE_NAME>
именем вашего изображения.Используйте этот идентификатор в качестве параметра для chenzj/dfimage
:
docker run -v /var/run/docker.sock:/var/run/docker.sock --rm chenzj/dfimage <IMAGE_ID>
Если вам это слишком сложно, просто потяните изображение chenzj/dfimage
, а затем используйте следующий скрипт docker-get-dockerfile.sh
:
#!/usr/bin/env sh
if [ "$#" -lt 1 ]
then
printf "Image name needed\n" >&2
exit 1
fi
image_id="$(docker images | grep "^$1 " | awk '{print $3}')"
if [ -z "$image_id" ]
then
printf "Image not found\n" >&2
exit 2
fi
docker run -v /var/run/docker.sock:/var/run/docker.sock --rm chenzj/dfimage "$image_id"
Вам необходимо передать имя изображения в качестве параметра.Пример использования:
$ ./docker-get-dockerfile.sh alpine
FROM alpine:latest
ADD file:fe64057fbb83dccb960efabbf1cd8777920ef279a7fa8dbca0a8801c651bdf7c in /
CMD ["/bin/sh"]