[Feature]: Use only container instead external storage (volume or host mapping)
Is your proposal related to a problem?
Currently each container uses docker volumes or we can optionally map it to host path.
Describe the solution you'd like.
Allowing disable external storage and store all windows files with container. Of course it will cause containers will very big, but then we can easly use docker commit to create container image as checkpoint purpose. Currently for using this for testing software is a bit inconvenient because everytime I create new fresh container for testing it reinstall whole system. If I can create custom container image after installation with docket commit it should be much faster to create new fresh containers for software testing.
Describe alternatives you've considered.
Manually backup docker volumes.
Additional context
No response
Very good idea, I will add this to the next version!
This now added in v4.03 if you set:
environment:
COMMIT: "Y"
Try it out and let me know if it works!
@Krzysztof318 That is because the container is based on qemu-docker, you can see the relevant changes here: https://github.com/qemus/qemu-docker/commit/549789337cecec5964c7ffc336311519892ec0d0
It works but commiting with docker is almost impossible, hangs on commit command, anyway your patch works, just docker has a problem with commit huge image about 64gb.
@Edit Creating image took 15 minutes
@kroese Could you also disable creating empty volume and remove iso file after installation?
I am not docker and linux speciallist but image from container shouldn't be smaller? data.img is growable disk so, why it takes full size when docker commit?
@Krzysztof318, I've set COMMIT=Y and DISK_FMT=qcow2 environment variables. It creates growable qcow2 disk image instead of raw sparse file. I was able to commit my container and reuse it later multiple times. Commit took 3 minutes.
Something like this will be also fine for docker image layers qemu support disk snapshots https://kashyapc.fedorapeople.org/virt/lc-2012/snapshots-handout.html
Implemented