

Next, I had to mount the partition for use.The important thing to pick up is the value in the “Start” column for the boot sector. I typed parted -s container/image.raw unit b print to get the data I needed in order to mount the partition. Once the conversion process is complete, you need to look at the partition table on the new RAW file in order to get details necessary to mount the file for further use.In my case, I typed qemu-img convert-O raw image.vdmk container/image.raw (WARNING – This conversion process can take a while, depending on VMDK size) Now you’re ready to convert the VMDK to a raw file.I’ll use this folder to hold my conversion work product. Prior to beginning the conversion process, I created a directory named container under the specific VM folder of the image I’m converting. Next, you need to convert your existing VMDK to a raw file for further use.

My VMs are in separate folders in the Windows partition located in c:\agreen\VMs To access that folder, I typed cd /mnt/c/agreen\VMs (NOTE: you will need to use the directory name on your system where you have your VMs stored)

I have not tested with a Windows VM, but my expectation is that the conversion process will still work. A word of caution – I tested this by converting a Linux VM. I am documenting the steps I followed below, in the hopes that it can help someone else down the road, and for me to refer to in the future. However, it is not a simple process and is time-consuming. I figured there has to be a way to convert VMs on my Win10 system to Docker containers, and there is. I have a small library of existing VMs that may be useful, and I’m lazy enough that I don’t want to rebuild them from scratch as containers. Students can choose to run the lab environment locally, or they can stand up a cloud-based VM in AWS, Azure, Digital Ocean, Linode… you get the idea. Being able to create a series of images, push them to a public Docker repo, and then store a Docker compose script in a Github repo for students to access and run as needed just seems like the way to go. From a pedagogical perspective, I see lots of opportunities to quickly and easily script environments to support hands-on lab objectives for my students. I’m starting to experiment with Docker containers.
