--- title: Back up and restore data keywords: Docker Desktop, backup, restore, migration, reinstall, containers, images, volumes --- You can use the following procedure to save and restore images and container data. For example to reset your VM disk or to move your Docker environment to a new computer. ## Save your data 1. If you have containers that contain data that must be backed up, commit those containers to an image with [`docker container commit`](../engine/reference/commandline/commit.md). Committing a container stores the container filesystem changes and some of the container's configuration (labels, environment-variables, command/entrypoint) as a local image. Be aware that environment variables may contain sensitive information such as passwords or proxy-authentication, so care should be taken when pushing the resulting image to a registry. Also note that filesystem changes in volume that are attached to the container are not included in the image, and must be backed up separately (see step 3 below). Refer to the [`docker container commit` page](../engine/reference/commandline/commit.md) in the Docker Engine command line reference section for details on using this command. > Should I back up my containers? > > If you use volumes or bind-mounts to store your container data, backing up > your containers may not be needed, but make sure to remember the options that > were used when creating the container or use a [Docker Compose file](../compose/compose-file/index.md) > if you want to re-create your containers with the same configuration after > re-installation. 2. Use [`docker push`](../engine/reference/commandline/push.md) to push any images you have built locally and want to keep to the [Docker Hub registry](../docker-hub/index.md). Make sure to configure the [repository's visibility as "private"](../docker-hub/repos.md#private-repositories) for images that should not be publicly accessible. Refer to the [`docker push` page](../engine/reference/commandline/push.md) in the Docker Engine command line reference section for details on using this command. Alternatively, use [`docker image save -o images.tar image1 [image2 ...]`](../engine/reference/commandline/save.md) to save any images you want to keep to a local tar file. Refer to the [`docker image save` page](../engine/reference/commandline/save.md) in the Docker Engine command line reference section for details on using this command. 3. If you use [named volume](../storage/index.md#more-details-about-mount-types) to store container data, such as databases, refer to the [backup, restore, or migrate data volumes](../storage/volumes.md#backup-restore-or-migrate-data-volumes) page in the storage section. After backing up your data, you can uninstall the current version of Docker Desktop and install a different version ([Windows](windows/install.md) [macOS](mac/install.md), or reset Docker Desktop to factory defaults. ## Restore your data 1. Use [`docker pull`](../engine/reference/commandline/load.md) to restore images you pushed to Docker Hub in "step 2." in the [save your data section](#save-your-data) If you backed up your images to a local tar file, use [`docker image load -i images.tar`](../engine/reference/commandline/load.md) to restore previously saved images. Refer to the [`docker image load` page](../engine/reference/commandline/load.md) in the Docker Engine command line reference section for details on using this command. 2. Refer to the [backup, restore, or migrate data volumes](../storage/volumes.md#backup-restore-or-migrate-data-volumes) page in the storage section to restore volume data. 3. Re-create your containers if needed, using [`docker run`](../engine/reference/commandline/load.md), or [Docker Compose](../compose/index.md).