如何将VM映像转换为dockerfile?

时间:2018-05-17 14:46:42

标签: docker virtual-machine virtualbox

出于工作目的,我有一个ova文件,我需要将其转换为DockerFile。

有人知道怎么做吗?

提前致谢

4 个答案:

答案 0 :(得分:0)

在我看来,这是完全不可能的。但您可以创建具有相同操作系统的dockerfile并安装数据。

答案 1 :(得分:0)

是的,可以使用VM映像并在容器中运行它。我们的许多客户已成功使用此项目:https://github.com/rancher/vm.git

  

RancherVM允许您创建在Kubernetes pod中运行的VM,   称为VM Pods。 VM pod看起来和感觉像一个普通的pod。代替   但是,每个VM pod都是运行虚拟机的容器   实例。您可以将任何QEMU / KVM映像打包为Docker映像,   使用任何Docker注册表(如DockerHub)分发它,然后运行它   在RancherVM上。

最近这个项目也与kubernetes兼容。有关详细信息:https://rancher.com/blog/2018/2018-04-27-ranchervm-now-available-on-kubernetes

答案 2 :(得分:0)

有几种不同的方法可以做到这一点。它们都涉及获取VM的磁盘映像。一种是挂载VDI,然后从中创建Docker映像(请参阅其他Stackoverflow答案)。另一个方法是引导VM,然后将完整的磁盘内容(从root开始)复制到共享文件夹。等等。我们已经通过多种方法取得了成功。只要VM中的磁盘与正在运行的容器下面的内核兼容,创建具有完整VM磁盘的Docker映像就可以正常工作。

答案 3 :(得分:0)

步骤 1

以 root 身份安装 ShutIt:

sudo su -
(apt-get update && apt-get install -y python-pip git docker) || (yum update && yum install -y python-pip git docker which)
pip install shutit

先决条件是 python-pip、git 和 docker。您的包管理器中这些的确切名称可能略有不同(例如 docker-io 或 docker.io),具体取决于您的发行版。

您可能需要确保 docker 服务器也在运行,例如使用“systemctl start docker”或“service docker start”。

步骤 2

查看复制服务器脚本:

git clone https://github.com/ianmiell/shutit_copyserver.git

步骤 3

运行 copy_server 脚本:

cd shutit_copyserver/bin
./copy_server.sh

有几个提示——一个是纠正配置文件上的权限,另一个是询问你想使用什么 docker 基础镜像。确保使用尽可能靠近原始服务器的服务器。

请注意,这需要具有“docker exec”选项的 docker 版本。

步骤 4

运行构建服务器:

docker run -ti copyserver /bin/bash

您现在可以在 docker 容器中实际复制您的服务器!

来源

https://zwischenzugs.com/2015/05/24/convert-any-server-to-a-docker-container/