Необходимость заглянуть внутрь образа контейнера без его запуска возникает довольно часто при отладке или аудите безопасности. Существует несколько способов реализации этой задачи, каждый из которых имеет свои особенности.

Самый простой и распространенный метод — использование команд docker create и docker export:

docker create --name tmp my-image
docker export tmp | tar -C rootfs -xf -

Данная комбинация позволяет быстро извлечь файловую систему, максимально приближенную к той, с которой стартовал бы контейнер. В большинстве случаев этого вполне достаточно для базового анализа содержимого.

Однако, если ваша задача требует получения полноценного rootfs с точным сохранением прав доступа, владельцев файлов и расширенных атрибутов (xattrs), таких как capabilities или sticky bits, стандартные инструменты могут оказаться недостаточно надежными. В таких ситуациях процесс усложняется из-за особенностей работы слоев Docker и файловых систем.

Более детальный разбор практических методов, а также описание всех подводных камней, с которыми вы можете столкнуться при извлечении образов, доступны в нашей статье: Extracting container image filesystem.