# VM Snapshot vs Volume Snapshot

**URL:** <https://community.fly.io/t/vm-snapshot-vs-volume-snapshot/5992>\
**Category:** Questions / Help\
**Created:** [July 14, 2022, 5:46am UTC](https://community.fly.io/t/vm-snapshot-vs-volume-snapshot/5992 "2022-07-14T05:46:31Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![kurt](https://sea1.discourse-cdn.com/fly1/user_avatar/community.fly.io/kurt/32/43757_2.png) [@kurt](https://community.fly.io/u/kurt)\
**Post date:** [July 14, 2022, 9:18pm UTC](https://community.fly.io/t/vm-snapshot-vs-volume-snapshot/5992/3 "2022-07-14T21:18:17Z")

</div>

We don’t have any VM snapshot features yet. Hopefully sometime this year! The first hack is going to make it very fast to resume a machine, though. Creating entirely new machines from snapshots is more complicated. We may never ship that (we’ll see!)

For what you’re doing, I think you may be better off with Docker tooling. If I understand right, you want to start with an image, shell into it, then run a bunch of commands to make it work like a non-dockerized system.

The [`docker commit`](https://docs.docker.com/engine/reference/commandline/commit/) command will create an image from a container. Which means you can start from scratch with something like this:

```bash
docker run --name my-custom-image debian:stable-slim /bin/bash

```

Then run all the commands you want. Then exit. Then you can run:

```bash
docker stop my-custom-image
flyctl auth docker
docker commit my-custom-image registry.fly.io/my-app:build-1234
docker push registry.fly.io/my-app:build-1234

```

Does that do what you need?

The caveat here is that you need to be running x86 Docker. If you’re running Docker on an m1 Mac, this won’t produce a Docker image you can run on Fly.

---

_[View the full topic](https://community.fly.io/t/vm-snapshot-vs-volume-snapshot/5992)._
