Back up Docker in separate layers: archive every named or anonymous volume, preserve the images you need, and save the Compose file or equivalent docker run options. A container can be recreated; its persistent volume data cannot be recovered from docker export or docker container commit. For a dependable recovery, stop writers, create a tar archive through a temporary helper container, save required images, then recreate the service and extract each archive into a new volume.
Antihost offers VPS plans with one-click Docker, NVMe storage and a 14-day free trial.
What a Docker backup must contain
A running service is made from several independent pieces. Treating “the container” as one backup object is the most common reason a restore appears successful but loses application data.
As an Amazon Associate I earn from qualifying purchases.
Free tools Windows power users keep installed
One-click scans. No signup required.
| Artifact | What it preserves | What it does not preserve |
|---|---|---|
| Volume archive | Files stored in a named or anonymous volume, including database and user data | Container options, networks, image layers, and other volumes unless archived separately |
| Image archive | Selected image layers, tags, and parent layers | Runtime state and volume contents |
| Compose file or recorded run command | Service definitions, mounts, ports, environment settings, networks, and restart choices | The data inside volumes |
| Desktop or VM backup | Platform-specific Docker Desktop virtual-machine data | Portability between different Desktop backends and operating systems |
Docker volumes are managed separately from a container’s lifecycle. Removing a container does not automatically remove a volume, so the volume is the authoritative copy of persistent application data. Back it up independently even when the container itself is disposable.
Before you archive anything
Inventory the deployment
Record enough information to rebuild the service without guessing:
#1 Best Overall
- Capacity Display Variance: 1TB external ssd often appears as around 931GB on Windows. MacOS can show full 1 TB capacity. This is binary calculation difference and doesn’t affect SSD hard drive actual physical storage
- 1050 MB/s Speed: Instantly access to your files with blazing-fast 10Gbps external SSD read up to 1050MB/s and write up to 1000MB/s. LED Light indicates USB SSD instant activity
- Data Security: Solid state drives S.M.A.R.T. health diagnostics and adaptive TRIM optimizing data block management ensures consistent write speeds and extends the longevity of the portable SSD
- USB-C & USB-A Cable: Both cables featuring rapid USB 3.2 Gen2, this USB SSD effortlessly bridges devices, enabling seamless cross-platform file transfers and backup between computers, smartphones, tablets and iPhone
- Always Fast: No slowdowns for large file transfers. With SLC caching (25% of current available capacity allocated as high-speed cache), this external SSD delivers steady 10Gbps for transfers within the cache capacity
- Container names and the exact image repository and tag.
- Published and internal ports, attached networks, restart policies, and health checks.
- Every bind mount and volume mount, including the container path and read-only status.
- Environment variables, secret references, configuration files, and the location of any external secret store.
- The Compose file, override files, profiles, and project name, or the complete options used with
docker run. - Which volumes contain application state. A volume may be anonymous, so record its generated name or its mount relationship before deleting anything.
Use docker ps -a and docker inspect <container> to check names, mounts, environment, networks, and image references. Keep the resulting configuration with the backup, but remove or protect credentials before placing it on shared storage.
Quiesce writers for a consistent copy
Stop a database or pause application writes before copying its files. A tar archive can faithfully copy files that are individually valid while still capturing an inconsistent database state if transactions are in progress. Use the application’s own backup or flush procedure when it provides one, then stop the service or put it into maintenance mode. The Docker commands below provide the archive mechanics; the database or application owner must choose the consistency procedure.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Back up a Docker volume with Docker’s helper-container pattern
The documented approach mounts the source volume into a temporary container, mounts a host directory at /backup, and runs tar. The archive is written to the host, not left inside the disposable helper.
1. Create a helper that mounts the source volume
docker run -v /dbdata --name dbstore ubuntu /bin/bash
This creates (or starts) a container named dbstore with the volume mounted at /dbdata. The helper does not need to run an application; it only gives the backup command a stable volume mount.
2. Write the tar archive to the host
docker run --rm --volumes-from dbstore -v $(pwd):/backup ubuntu
tar cvf /backup/backup.tar /dbdata
Run this from the directory where you want the archive. --volumes-from dbstore exposes the same volume mounts to the second container, while -v $(pwd):/backup makes the current host directory available for output. When the command finishes and the container stops, backup.tar contains the dbdata volume contents.
Archive each volume separately or use a helper with all required volumes and clearly document the mount paths. Separate archives make it possible to restore one service component without overwriting unrelated data.
3. Check the resulting file
ls -lh backup.tar
tar tf backup.tar | head
Confirm that the archive exists, has a plausible size, and lists the expected top-level directory. The command can emit ownership and permission warnings when the helper image lacks matching users; investigate any warning rather than assuming the copy is complete.
Rank #2
- Capacity Display Variance: 250GB external ssd often appears as around 232GB on Windows. MacOS can show full 250 GB capacity. This is binary calculation difference and doesn’t affect SSD hard drive actual physical storage
- 1050 MB/s Speed: Instantly access to your files with blazing-fast 10Gbps external SSD read up to 1050MB/s and write up to 1000MB/s. LED Light indicates USB SSD instant activity
- Data Security: Solid state drives S.M.A.R.T. health diagnostics and adaptive TRIM optimizing data block management ensures consistent write speeds and extends the longevity of the portable SSD
- USB-C & USB-A Cable: Both cables featuring rapid USB 3.2 Gen2, this USB SSD effortlessly bridges devices, enabling seamless cross-platform file transfers and backup between computers, smartphones, tablets and iPhone
- Always Fast: No slowdowns for large file transfers. With SLC caching (25% of current available capacity allocated as high-speed cache), this external SSD delivers steady 10Gbps for transfers within the cache capacity
4. Remove or retain the helper deliberately
The helper is not the backup. Keep it only if it is part of a documented workflow; otherwise remove it after verifying the archive:
docker rm dbstore
Do not remove the real application container or its volume until you have verified an independent copy.
Restore a volume archive into a new volume
Restore into a newly created destination rather than extracting over an unknown, live data directory. This gives you a clean point from which to validate the result and roll back if needed.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →1. Create a destination helper and volume
docker run -v /dbdata --name dbstore2 ubuntu /bin/bash
The /dbdata mount is backed by a new volume when no existing volume is specified. If you need a particular named volume, create it first with docker volume create <name> and use the explicit volume name in the helper’s -v option.
2. Extract the archive
docker run --rm --volumes-from dbstore2 -v $(pwd):/backup ubuntu
bash -c "cd /dbdata && tar xvf /backup/backup.tar --strip 1"
Changing to /dbdata and using --strip 1 removes the archive’s leading dbdata directory, so files land directly at the volume root. If your archive has a different top-level directory, inspect it with tar tf and adjust the extraction path or strip count accordingly.
3. Recreate the service and validate it
Do not point the application at the restored volume until extraction has completed. Recreate the container with the original image, mounts, environment, ports, networks, and secrets. Start it, inspect logs, and perform an application-level check: connect to the database, open representative user records, read uploaded files, or run the service’s own integrity command. Keep the old volume untouched until the new instance passes those checks.
Preserve the images needed for an offline or rebuilt host
Volume archives contain data, not executable image layers. If the destination host cannot pull the same images, save the locally available images to a tar file.
Rank #3
- Capacity Display Variance: 500GB external ssd often appears as around 465GB on Windows. MacOS can show full 500 GB capacity. This is binary calculation difference and doesn’t affect SSD hard drive actual physical storage
- 1050 MB/s Speed: Instantly access to your files with blazing-fast 10Gbps external SSD read up to 1050MB/s and write up to 1000MB/s. LED Light indicates USB SSD instant activity
- Data Security: Solid state drives S.M.A.R.T. health diagnostics and adaptive TRIM optimizing data block management ensures consistent write speeds and extends the longevity of the portable SSD
- USB-C & USB-A Cable: Both cables featuring rapid USB 3.2 Gen2, this USB SSD effortlessly bridges devices, enabling seamless cross-platform file transfers and backup between computers, smartphones, tablets and iPhone
- Always Fast: No slowdowns for large file transfers. With SLC caching (25% of current available capacity allocated as high-speed cache), this external SSD delivers steady 10Gbps for transfers within the cache capacity
Save one or more images
docker image save -o images.tar image1 image2
The save operation includes parent layers and tags for the selected images. Include every locally built image and every pinned version required by the Compose file; saving only a generic base image will not recreate your application.
Optionally compress the archive
docker image save myimage:latest | gzip > myimage_latest.tar.gz
Compression reduces storage use but adds CPU time during save and load. Record the exact image names and tags in a text manifest so a future operator knows what the archive is expected to contain.
Load images on the destination
docker image load -i images.tar
After loading, run docker image ls and confirm that the expected repository and tag are present before recreating containers. Loading an image does not start a service and does not attach any volume.
Recreate containers from declared configuration
A container is an instantiation of an image plus runtime options. Keep the Compose file under version control, or save a complete, sanitized record of the original docker run command. Reapply mount destinations exactly: changing /var/lib/postgresql/data to another path can make an application initialize a new empty data directory even though the restored volume is full.
Recreate in this order:
- Install Docker or Docker Desktop and verify the engine is running.
- Load the image archive if the images are not available from a registry.
- Create the named volumes and networks declared by the service.
- Restore each volume while its consuming application is stopped.
- Start the service using the Compose file or recorded run options.
- Check logs, health status, ports, permissions, and application data before directing users to it.
When data lives in volumes or bind mounts, a separate container snapshot is generally unnecessary for rebuilding the service, provided the creation options are retained. The options are still essential: without them, you may not know which image tag, mount, network, port, or environment setting made the original service work.
Why docker export does not back up your volumes
docker export archives a container’s writable filesystem. It explicitly does not export the contents of volumes associated with that container. A mounted volume hides the image or writable-layer directory at its mount point; export captures the underlying directory beneath the mount, not the data currently stored in the volume.
docker export <container> -o container-filesystem.tar
This can be useful for a one-off capture of filesystem changes made inside a container, but it is not a database or user-data backup. Pair it with a separate archive for every volume if you use it at all, and remember that export does not preserve runtime configuration such as published ports, networks, restart policy, or secret injection.
Rank #4
- High-speed Performance: Designed for casual gamers and everyday use, this external SSD with up to 1050MB/s accelerates large file transfers, media editing, and backup processes outperforming traditional hard drives
- Built to Last: Perfect for travel and all types of weather with IP55 water and dust resistance. Plus, it's drop resistant up to 7.5 ft (2 meters). This portable drive is designed for durability and reliability wherever you go
- Broad Compatibility: External drive connects effortlessly with Windows, Mac, iPad Pro, Chromebooks, Android, Linux, PS4, PS5, and Xbox via USB-C and USB-A for easy and fast file transfers
- High-Capacity Storage: Store all your photos, videos, backups, and more with this compact 2TB SSD. It's perfect for students, everyday users, and anyone needing secure and reliable storage for their files
- Bonus Software Included: Enjoy three months of Mylio Photos plus and Acronis True Image when you purchase and register your external drive
What docker container commit captures—and what it omits
docker container commit creates a new image from changes in the container’s filesystem and can preserve selected configuration. It does not include changes made in attached volumes.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errorsdocker container commit <container> emergency-snapshot:2026-10-15
Use a commit as an emergency snapshot of mutable container-layer changes, not as the primary protection for persistent data. Images created from a commit may also contain environment variables with passwords, proxy credentials, tokens, or other sensitive values. Restrict access, scan the image, and delete it when it is no longer required.
Moving volumes to another server
A volume is portable as a set of files, not as an automatically transferable Docker object. The practical migration is archive, transfer, recreate, and extract.
- Stop writers on the source host and create a tar archive for each volume.
- Copy the archives, image tar files, Compose/configuration files, and a manifest to storage independent of the source Docker host.
- Install a compatible Docker engine on the destination and load images with
docker image load, or pull the exact tags from your registry. - Recreate the destination volumes and networks from the configuration.
- Extract each archive into its matching new volume using a helper container.
- Start the services and validate application data before decommissioning the source.
Preserve numeric ownership and permissions during extraction. If the destination runs with different user or group IDs, the application may start but fail to read or write files; correct ownership only after confirming the image’s expected IDs and the application’s documented requirements.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Restoring after reinstalling Docker Desktop
For a Desktop reinstall, first determine where the persistent data was stored. Volumes and bind mounts are separate from the container definition. If you have volume archives and the Compose file, rebuild using the portable workflow above rather than relying on an internal Desktop path.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchDocker Desktop also has platform-specific virtual-machine or disk-image backup guidance. Such a backup can help with full Desktop or VM recovery, but its paths and behavior depend on the operating system and Desktop backend, so it is less portable than volume tar files plus declared configuration. Copy recovery artifacts to a safe location before uninstalling or resetting Desktop; do not leave the only copy inside the Docker-managed data directory being replaced.
After reinstalling, verify the engine, load saved images, recreate volumes, restore archives, and bring services up from the Compose file. A successful Desktop launch alone does not prove that application data was recovered.
Best Value
- Built for Creators: Capture, edit, and transfer with ease. NVMe SSD with premium NAND Flash delivers up to 2100MB/s—perfect for 5K video, RAW photos, and gaming assets
- Record Without Limits: Direct 4K 120fps HDR recording from compatible USB-C iOS/Android phones, cameras, and tablets with supported pro apps. Ideal for high-bitrate shooting on the go
- Rugged, Reliable, Ready: Durable aluminum shell with water- and drop-proof protection. SMART monitoring and advanced error correction keep your data safe in any environment
- Works Where You Do: True plug-and-play with laptops, desktops, cameras, projectors, and more. Fully compatible with Windows, Mac, iPad Pro, Chromebooks, Android, Linux, PS4, PS5, and Xbox devices
- Pocket-Sized Power & Capacity Notice: Ultra-slim 2.85 × 1.52 × 0.40 in, 0.03 lb SSD fits any pocket or gear bag. Actual usable storage may be ~7–10% less than labeled due to system calculation differences. Supports up to 2100MB/s under ideal USB 3.2 Gen 2x2/Thunderbolt 4/5 conditions; older interfaces may reduce speeds
Store backups so a host failure does not destroy them
Keep volume archives, image archives, configuration, and integrity metadata on storage separate from the Docker host. An external USB SSD or hard drive can provide a practical offline copy; choose capacity and interface appropriate to the archive size and the computers that must read it. For higher resilience, maintain another copy in a separate failure domain and restrict access to archives containing secrets or personal data.
Use clear names that include the service, volume, image set, and date. Record the Docker and application versions, the source host, the quiescing procedure used, and the expected archive contents. Generate checksums with a tool available in your environment and verify them after transfer. A checksum proves that bytes did not change; it does not prove that a database archive is logically usable.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Test recovery instead of trusting a completed backup
Docker’s volume technique can be automated and used for restore testing. Schedule a drill on a fresh volume or isolated host:
- Provision a clean Docker engine and copy the test artifacts.
- Verify archive checksums and load the saved images.
- Recreate networks, volumes, and services from the declared configuration.
- Extract every volume archive while applications are stopped.
- Start the stack and run application-level verification, not just
docker ps. - Measure how long the procedure takes and document any manual fixes, missing secrets, permission changes, or version incompatibilities.
- Destroy the test environment only after preserving the updated runbook.
A restore drill exposes missing files, incorrect mount paths, unavailable image tags, forgotten secrets, and archives that were created while a database was still writing. Repeat it after major image, Compose, Docker Engine, or application changes.
Choose the right method for the failure you are solving
| Method | Captures | Important limitation | Best fit |
|---|---|---|---|
| Volume tar archive | Persistent files in a named or anonymous volume | Does not recreate container configuration | Databases, uploads, and server migration |
docker image save/load |
Image layers, parent layers, tags, and versions selected for saving | Contains no runtime volume data | Offline rebuilds and preserving local images |
docker export |
Container writable filesystem | Excludes associated volume contents and runtime settings | One-off filesystem capture |
docker container commit |
Container filesystem changes and selected configuration | Excludes attached volume changes and may preserve secrets | Emergency snapshot of mutable container state |
| Compose or recorded run options | Service definitions, mounts, networks, ports, and options | Requires separate image and data artifacts | Repeatable recreation |
| Docker Desktop VM backup | Desktop virtual-machine or disk-image data | Backend- and operating-system-specific, with lower portability | Full Desktop or VM recovery |
Common failure modes and fixes
The restored container starts with an empty database
Check that the restored volume is mounted at the application’s exact data path and that the Compose project did not silently create a different volume name. Inspect the container mounts and compare them with the original inventory before writing new data.
The archive exists but extraction placed files in the wrong directory
List the archive with tar tf backup.tar. If it contains dbdata/..., use cd /dbdata with --strip 1; if its layout differs, adjust the destination and strip count to match the archive’s actual leading directories.
The image cannot be found after reinstall
Load the image tar file and verify the exact repository and tag. A tag mismatch can cause Docker to pull or build a different image, while a missing locally built image prevents the recreated service from starting.
The application reports permission errors
Compare file ownership and mode bits in the restored volume with the user IDs used by the image. Do not apply a blanket ownership change until you know the application’s expected IDs; changing ownership on database files can create a different failure.
The backup consumed far more space than expected
Check whether the archive includes caches, temporary files, or multiple copies of the same dataset. Archive only the volumes that hold required state, and use compression when transfer or storage capacity matters. Keep the uncompressed archive long enough to complete and verify a restore if your recovery policy requires it.
Minimum recovery set
- One verified archive for every persistent volume.
- Saved image archives or a registry location containing the exact required tags.
- A Compose file or complete, sanitized
docker runconfiguration. - Secrets and certificates stored through a recoverable, access-controlled process.
- Checksums, a volume-to-service map, and a tested restore runbook.
With those artifacts, a failed container host becomes a rebuild task rather than a data-loss event: load the images, recreate the declared services, restore the volumes, and verify the application.
Recommended Free Tools
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




