嘿,大家好,我正在尝试在 docker 中将 ISO 文件作为 os 运行,为此,我已将我的 iso 创建为 tar.gz,但我无法找到合适的答案将该文件导入 docker 容器中。
如果有人能在这方面帮助我那就太好了。
答案1
如果你有一个 ISO 文件,想将其内容用作 docker 容器内的根文件系统,docker 并不直接支持。你需要先将 ISO 镜像转换为 docker 镜像。
一种可能的解决方法是使用主机上的循环设备挂载 ISO 映像,然后docker run
使用 -v 调用最小容器将 iso 中的顶级目录绑定到容器中。
例如:
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
这会用 ISO 文件中的文件覆盖容器中的 busybox 映像内容。如果docker run
允许使用 -v 覆盖容器中的根目录,那么情况会简单得多,因此上面的所有 -v 都可以替换为-v "/tmp/iso-mount:/"
,但 docker 拒绝这样做。
答案2
好的。我也是 docker 新手。
首先,将 ISO 提取到
ISO
docker 中的文件夹中。(对于 Windows 映像,这应该需要 3 分钟)您需要一个名为的dockerfile
Dockerfile
:#################### # Docker ISO Start # #################### COPY ISO/ / #################### # Docker ISO End # ####################
现在执行你的 docker。
- 它应该启动到一个映像。