我已经制作了一个Docker容器,其中包含一些用于部署的代码。但是,我意识到我正在处理的项目的结构更适合部署完整的ISO映像,而不是将docker运行在运行库存debian的云VM之上,从而导致不必要的虚拟化层。
我知道docker打算部署在kubernetes上,但是在深入探讨这条路线之前,是否有一种简单的方法可以将deb9 docker映像转换为完整的deb9 OS映像?像docker import
的对立面?
答案 0 :(得分:1)
Docker映像不包含Linux内核,并且未配置为运行完整的init系统或外出并获取其网络配置,因此无法正常工作。
以不同的方式输入:导致docker import
的错配实际上并不能很好地起作用,因为生成的容器将包含太多内容,并且无法为Docker设置,这意味着您无法将容器或图像导出到虚拟机,并期望它可以在该环境中工作。
但是!如果您已经为映像编写了Dockerfile,则非常接近地说“我将从这个基本的Linux发行版开始并运行此Shell脚本来获取映像”。诸如Packer之类的工具被设置为获取基本的Linux VM映像,运行某种资源调配程序并创建新映像。如果您已经具有良好的Docker设置,并且确定VM更合适,则可能已经完成了很多工作,可以自动构建VM映像。
答案 1 :(得分:1)
您可以将docker 容器转换为完整的OS映像。 Dockerfile debian示例将是
FROM debian:stretch
RUN apt-get -y install --no-install-recommends \
linux-image-amd64 \
systemd-sysv
原则上,您必须安装一个内核和一个初始化系统。
完整说明github