虚拟机ova或vmdk文件转成docker镜像文件

消失的森林 / 2023-08-31 / 原文

目前网上流传的直接将虚拟机ova文件利用docker import 导入生成docker镜像无法使用


将vmdk格式文件转换成raw格式

ova格式里面包含vmdk文件,可以解压出来

qemu-img convert -f vmdk -O raw ubuntu.vmdk ubuntu.raw

利用guestfish工具检查文件系统并压缩打包

先读入raw文件,注意可能需要root权限

sudo guestfish -a /mnt/hgfs/workplace/ubuntu.raw  --ro

#  挂载磁盘到/,可以多次挂载卸载测试看看root目录
mount /dev/ubuntu-vg/ubuntu-lv /

# 卸载命令
unmount /

# 打包压缩
tar-out  / - | xz --best >> ubuntu.xz

利用docker命令导入压缩包

cat ubuntu.xz | docker import - ubuntu-server:v0.1

# 运行镜像

docker run -it ubuntu-server:v0.1 /bin/bashs

将运行中的系统打包

# 排除不必要的包,运行系统中最好不要安装docker
sudo tar --numeric-owner --exclude=/proc --exclude=/sys --exclude=/mnt --exclude=/var/cache --exclude=/usr/share/foomatic,backgrounds,perl5,fonts,cups,qt4,groff,kde4,icons,pixmaps,emacs,gnome-background-properties,sounds,gnome,games,desktop-directories --exclude=/var/log -zcvf  /mnt/ubuntu.tar /