3

Привет всем, я пытаюсь запустить ISO-файл как ОС внутри докера, для этого я создал свой iso как tar.gz, но я не могу найти подходящий ответ для импорта этого файла внутри контейнера докера.

Если кто-то может помочь мне в этом отношении, было бы здорово.

1 ответ1

1

Если вы получили 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 это отвергает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .