Se você tiver um arquivo ISO com o conteúdo que gostaria de usar como sistema de arquivos raiz dentro de um contêiner docker, o docker não será compatível diretamente. Você precisa converter a imagem ISO em uma imagem de encaixe primeiro.
Uma solução possível é montar a imagem ISO usando um dispositivo de loop no host e, em seguida, chamar docker run
com um contêiner mínimo usando -v para vincular os diretórios de nível superior do iso ao conatiner.
Ou seja. algo como:
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
Isso substitui no contêiner o conteúdo da imagem do busybox com arquivos do seu arquivo ISO. Isso poderia ser muito mais simples se docker run
permitisse usar -v para sobrecarregar a raiz no contêiner para que todos os -v acima possam ser substituídos por apenas -v "/tmp/iso-mount:/"
, mas o docker rejeita isso.