【问题标题】:Can you convert/build a docker image into a full OS image?您可以将 docker 映像转换/构建为完整的 OS 映像吗?
【发布时间】:2019-01-29 00:03:43
【问题描述】:

我制作了一个 docker 容器,其中包含一些用于部署的代码。但是,我意识到我正在使用的项目结构更适合部署完整的 ISO 映像,而不是在运行 stock debian 的云 VM 之上运行 docker,从而导致不必要的虚拟化层。

我知道 docker 是要部署在 kubernetes 上的,但是在深入研究该路线之前,有没有一种简单的方法可以将 deb9 docker 映像转换为完整的 deb9 OS 映像?像 docker import 的反义词?

【问题讨论】:

    标签: image docker operating-system debian iso


    【解决方案1】:

    您可以将您的 docker 容器 转换为完整的操作系统映像。一个 Dockerfile debian 示例将是

    FROM debian:stretch
    RUN apt-get -y install --no-install-recommends \
      linux-image-amd64 \
      systemd-sysv
    

    原则上你必须安装一个内核和一个初始化系统。

    完整说明请见github

    【讨论】:

      【解决方案2】:

      Docker 映像不包含 Linux 内核,并且未配置为执行诸如运行完整的初始化系统或外出获取其网络配置之类的操作,因此这不会很好地工作。

      换一种说法:同样的不匹配导致docker import 不能很好地工作,因为生成的容器会有太多的东西并且不会为 Docker 设置,这意味着你不能将容器或映像导出到 VM并期望它在那个环境中工作。

      但是!如果你已经为你的镜像编写了一个 Dockerfile,那非常接近于说“我将从这个基本的 Linux 发行版开始并运行这个 shell 脚本来获取一个镜像”。 Packer 之类的工具设置为获取基础 Linux VM 映像、运行某种配置程序并创建新映像。如果您已经有一个良好的 Docker 设置,并且认为 VM 更合适,那么您可能已经完成了很多工作来自动构建您的 VM 映像。

      【讨论】:

      • 当容器“启动”时,我没有使用 dockerfile 安装程序,而是手动安装程序,然后提交整个容器。所以我基本上不走运?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多