Если вы получили ISO-файл, содержимое которого вы хотели бы использовать в качестве корневой файловой системы внутри контейнера Docker, то Docker не поддерживает напрямую. Вы должны сначала преобразовать образ ISO в образ докера.
Возможный обходной путь - это смонтировать ISO-образ, используя петлевое устройство на хосте, а затем вызвать docker run
с минимальным контейнером, с помощью -v, чтобы связать каталоги верхнего уровня из iso в conatiner.
Т.е. что-то вроде:
mkdir /tmp/iso-mount
mount -o loop,ro path-to-image-file.iso /tmp/iso-mount
top_dir_mounts=()
for i in bin etc lib usr var
do
top_dir_mounts+=(-v "/tmp/iso-mount/$i:/$i")
done
docker run --rm --read-only "${top_dir_mounts[@]}" --tmpfs /tmp --tmpfs /run busybox
Это переопределяет в контейнере содержимое изображения busybox с файлами из вашего ISO-файла. Это может быть намного проще, если docker run
позволил использовать -v для переопределения корня в контейнере, так что все вышеперечисленные -v можно заменить просто -v "/tmp/iso-mount:/"
, но docker это отвергает.