Docker 运行自己的 iso 文件作为操作系统

Docker 运行自己的 iso 文件作为操作系统

嘿,大家好,我正在尝试在 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 新手。

  1. 首先,将 ISO 提取到ISOdocker 中的文件夹中。(对于 Windows 映像,这应该需要 3 分钟)

  2. 您需要一个名为的dockerfile Dockerfile

    ####################
    # Docker ISO Start #
    ####################
    COPY ISO/ /
    ####################
    #  Docker ISO End  #
    ####################
    
  3. 现在执行你的 docker。

  4. 它应该启动到一个映像。

相关内容