Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

The safe way to move a Docker Desktop workload is to migrate three separate things: image content, persistent data, and the instructions that create each container. Save or push every required image, back up each named volume independently, preserve Compose files or equivalent container options, then recreate and test the services on the destination runtime before deleting anything on the source. Installing another runtime or changing a Docker context does not copy Docker Desktop’s containers, images, or volumes.

This approach works for moving to Podman or another compatible engine, transferring a workload to another computer, or rebuilding services after replacing Docker Desktop. It also prevents the most common loss: assuming an image contains data that actually lives in a volume.

What actually has to be migrated?

A Docker container is a running instance of an image. It has a writable layer for changes made after the container was created, plus configuration such as ports, environment variables, networks, restart behavior, and mounts. A named volume is a separate persistent data store mounted into the container. These layers have different backup methods.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Item What it contains How to preserve it What it does not preserve
Image Read-only filesystem layers, tags, and build output Push to a registry or save an image archive with docker image save Data in attached volumes; the complete container launch configuration
Container writable layer Filesystem changes made inside the container after creation Commit the container to a new image, then save or push that image Changes made in attached volumes
Named volume Database files, uploads, and other persistent application data Export its contents to a tar archive and restore into a destination volume Container ports, environment variables, and other launch settings
Bind mount Files in a directory on the host, exposed inside the container Copy the host directory separately and recreate the same host-to-container mapping Any files that were never included in the copied host directory
Container definition Image reference, command, ports, environment, networks, mounts, and restart policy Keep the Compose file or record the equivalent docker run options The data itself

Docker’s documentation states: “Also note that filesystem changes in a volume that are attached to the container are not included in the image, and must be backed up separately.” That distinction is the foundation of a reliable migration.

#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter | 4Pack Type C Female to A Male Cable Converter for Apple Duo 17 16 15 14 Plus,iWatch Watch 12 11 10,iPad 9 8 Air,Airpods 5 4
  • Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
  • Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
  • Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
  • Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
  • 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.

How do I migrate Docker Desktop containers to an alternative runtime?

Use this order: inventory the source engine, preserve container changes and images, back up volumes and bind-mounted data, recreate the services, and validate them. Do not uninstall Docker Desktop or remove its volumes until the destination application has passed your checks.

1. Confirm which engine you are inspecting

Docker CLI contexts select an engine endpoint. A command can therefore target Docker Desktop, a separate local Docker Engine, or a remote engine without changing its syntax. Check the active context before listing or exporting anything:

docker context show
docker context ls
docker info

The context is connection configuration, not a portable copy of engine data. Exporting a context can reproduce endpoint settings, but it does not export images, containers, or volumes. Record the context name and the output of docker info so you know exactly which engine supplied the backups.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

2. Create a migration inventory

For every service, record the following before stopping or replacing the source runtime:

  • Image repository, tag, and digest if one is available.
  • Container name and the command or entrypoint it uses.
  • Published ports and internal network connections.
  • Environment variables and references to any environment file.
  • Restart policy, health check, user, working directory, and capabilities that matter to the application.
  • Named volumes, their mount points, and whether they are read-only or read-write.
  • Bind mounts, including the host paths whose contents must be copied.
  • Networks and service dependencies.
  • The Compose file, override files, secrets/configuration files, or the complete launch command.

Use docker ps -a, docker inspect, and your source-control or deployment directory to gather this information. Treat the output as a reconstruction record rather than as a backup of the data.

How do I preserve container changes and transfer Docker images?

Commit changes that exist only in a container

If a container contains a needed change that is not in a Dockerfile, source repository, or existing image, create an image from the container’s writable layer:

docker container commit CONTAINER_NAME migrated-image:tag

A commit captures filesystem changes in the writable layer and some container configuration, including labels and environment variables. It does not include files in attached volumes. Inspect the resulting image before sharing it. Environment variables can contain passwords, proxy credentials, tokens, or other secrets, and a committed image can preserve them in metadata or filesystem history. The better long-term fix is usually to put the change in a reproducible Dockerfile or Compose-controlled build, but the commit preserves an otherwise unrecorded change during an urgent migration.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Save images to a local archive

For an offline move or transfer by removable storage, save all required images in one or more archives:

Rank #2
Sale
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter | USB C Dongle with 90W Max Power Delivery, 3×5Gbps USB A Data Ports, for MacBook, Dell, and More (Charger Not Included)
  • 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
  • 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
  • Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
  • 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
  • What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
docker image save -o images.tar image1:tag image2:tag

Include every image used by the workload, including images for one-off migration jobs and health checks. Keep the archive with a checksum if you need to detect corruption while copying it. A local archive contains image layers and tags; it does not contain named-volume contents or the command that originally created each container.

On the destination Docker engine, import the archive with:

docker image load -i images.tar

List the imported tags and compare them with the inventory before recreating services. If the destination can reach a registry, pushing the images and pulling them there is an alternative to carrying a file. A registry is convenient for repeated transfers, while a local archive is useful when the destination is offline or the images must remain local.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use an archive format the destination supports

Podman’s podman-save documentation lists Docker-archive and OCI-archive formats, and podman-load imports saved archives. For a Podman destination, verify the installed version’s accepted format and platform support, then load the archive with the corresponding command, commonly:

podman load -i images.tar

Confirm the image name and tag with podman images. Loading an archive transfers image content; it does not make an existing Docker container appear in Podman, and it does not guarantee that every Docker-specific option will behave identically. Recreate the container from its recorded configuration.

How do I move Docker volumes without losing data?

Handle every named volume as an independent backup. A volume may contain the most valuable part of the application, such as a database, uploaded files, or a package cache. Backing up an image alone cannot recover it.

Stop or quiesce stateful applications first

A tar copy captures files as they are read. For a database or another actively changing service, stop the writer or place it in the application’s documented backup mode before copying. Use the application’s own dump or snapshot mechanism when it provides one, then keep the resulting dump alongside the volume archive. Record the application version and the time of the backup.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Back up a named volume with a helper container

Docker’s volume guide demonstrates mounting the source volume and a host backup directory into a temporary helper container:

Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter | 85W Max PD, 2 USB 3.0 & 1 USBC Data Ports, SD/TF Card Reader, for Laptops/Mac and Other Type C Devices (Charger Not Included)
  • Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
  • Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
  • Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
  • Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
  • What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
docker run --rm --volumes-from dbstore -v "$PWD":/backup ubuntu 
  tar cvf /backup/backup.tar /dbdata

In this example, dbstore is a container that has the source volume mounted at /dbdata, and backup.tar is written to the current host directory. Adapt the container, volume mount, and archive names to your service. Repeat the operation for each named volume; do not assume a single archive includes all volumes.

Inspect the archive before moving it:

tar tvf backup.tar

Check that the expected directory tree is present and that the archive is readable from the storage location you will use for the transfer. If the volume contains sensitive data, protect the archive with the same controls you use for the live data.

Restore into a destination volume

Create an empty volume on the destination runtime, mount it in a temporary helper container, and extract the archive there. A Docker-style restore pattern is:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
docker volume create dbstore-destination
docker run --rm -v dbstore-destination:/dbdata -v "$PWD":/backup ubuntu 
  sh -c 'cd /dbdata && tar xvf /backup/backup.tar --strip-components=1'

The exact extraction option depends on the path stored in the archive. If the archive lists an extra top-level directory, adjust the extraction path so that the application’s files end up directly under the destination mount point, not under an unintended nested directory. Verify the resulting tree with a temporary container before starting the application.

On a Podman destination, create a Podman named volume and use a helper container with the same mount-and-extract idea. Podman’s documentation describes named volumes as persistent independently of containers and documents its volume mount syntax. Confirm ownership, permissions, and mount behavior on the target host; a volume restored successfully at the file level can still fail if the application user cannot read or write it.

Use Docker Desktop’s volume interface when appropriate

Docker Desktop’s Volumes view provides export and import actions for named volumes. This can be useful when you prefer a graphical workflow, but the same rules apply: export each volume, protect the resulting file, restore it into a destination volume, and verify the application. The interface does not export the container’s ports, environment, networks, or restart policy.

Copy bind-mounted directories separately

A bind mount points to an ordinary directory on the source host. It is not a named volume and will not be included in a named-volume export. Copy that host directory with its complete contents, then recreate the bind mount at the destination. Preserve the path expected by the service, or deliberately change the host-side path while keeping the container-side path unchanged. Check ownership and permissions after the copy.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How do I recreate the containers on the destination?

Prefer Compose or another declarative definition

Use the original Compose file, including override files and environment files, as the destination’s launch specification. Update image references to the tags you loaded or pushed, change volume names to the restored destination volumes, and adjust host paths for bind mounts. Keep the container-side mount paths stable unless the application configuration is being changed as well.

Rank #4
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray | Data transfer & Fast charging for MacBook, iPhone 17/16/15, iPad, Samsung Galaxy, Apple Watch
  • Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
  • Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
  • Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
  • Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
  • Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft

Reapply ports, environment variables, networks, restart behavior, health checks, commands, users, and dependency relationships. A Compose file is more reliable than trying to reconstruct a long command from memory because it records the settings needed to recreate the service after a failure.

Recreate from recorded run options when Compose is unavailable

If the service was started with docker run, use the inventory from docker inspect to rebuild the command for the destination CLI. Re-add every significant option:

  • --name, image tag, command, and entrypoint.
  • -p port publications and any required exposed ports.
  • -e variables or an environment file, excluding secrets from shell history where possible.
  • -v named-volume and bind-mount mappings.
  • Network attachments, restart policy, health checks, user identity, and working directory.

Do not copy a container ID or assume a container’s writable layer will reappear after the image is loaded. The destination needs a new container created from the image and configuration.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Start in dependency order and test one service at a time

  1. Create or restore the destination volumes.
  2. Start the data service or other dependency first.
  3. Inspect logs and health status, then confirm that it can read its restored data.
  4. Start dependent services and test their connections over the intended network names and ports.
  5. Exercise the normal application workflow: sign in, read existing records, create a harmless test record, upload or retrieve a representative file, and verify background jobs if the application uses them.
  6. Record any configuration changes needed for the target runtime before migrating the next service.

Keep the source environment available until these checks pass. For a database, perform an application-level integrity check rather than relying only on the absence of container errors.

How do I transfer Docker images and volumes to another computer?

The process is the same whether the second computer runs Docker Engine, Docker Desktop, Podman, or another compatible runtime: create portable files on the source, copy them to the destination, import them, and recreate the services.

Prepare the transfer set

  • Image archive files or registry references.
  • One verified archive per named volume, or a documented application backup.
  • Compose files, environment-file templates, launch commands, and network information.
  • Copied bind-mount directories.
  • A manifest listing image tags, volume names, archive filenames, and checksums.

An external SSD or other local storage can hold these files, but it is optional; a registry or network transfer is also suitable. The required capacity depends on the actual image and volume archive sizes, so do not infer it from the number of containers.

Import and recreate on the new computer

  1. Install and start the destination runtime, then confirm its client and server versions and supported image platforms.
  2. Load the image archives or pull the images from the registry.
  3. Create destination volumes and restore their archives.
  4. Copy bind-mounted host directories and adjust paths in the Compose file or launch commands.
  5. Recreate the networks and containers.
  6. Run the validation procedure before shutting down the source.

If the destination is remote, ensure your CLI context points to that engine before every import, volume operation, and container creation command. A successful command sent to the wrong endpoint can leave the intended computer unchanged while making the source appear to have migrated.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Can I just switch Docker contexts?

No. Switching contexts changes which Docker engine receives CLI commands; it is not a data migration. The newly selected engine has its own image store, container store, and volume store. Use contexts to address the correct endpoint, then perform the image, volume, and configuration transfer described above.

Best Value
Sale
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display | 85W Max PD, 1 Powered USB-C 5Gbps & 2 Powered USB-A 3.0 5Gbps Data Ports, for MacBook Pro, MacBook Air, Dell and More (Black)
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.

Context export and import can help reproduce connection settings on another workstation, but they do not carry the data behind those connections. Always run docker context show and docker info after switching so you know where the next command will execute.

Will my Docker containers still be there after installing another runtime?

Usually not. An alternative runtime maintains its own storage and container metadata. Installing it does not discover and adopt Docker Desktop’s existing containers. Even when the alternative can load Docker or OCI image archives, you must create new containers and attach restored data.

Docker Desktop on Linux adds an explicit boundary: Desktop runs inside its own virtual machine and uses the desktop-linux context. Images and containers in a separate Linux Docker Engine are not automatically available inside Docker Desktop, and the reverse is also true. Treat a VM, remote host, or separate engine as a separate store unless its documentation provides a supported import path.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What changes when the destination is Podman?

Podman can import supported Docker-archive and OCI-archive image files and can mount named volumes, making the image-and-data workflow practical. It does not, however, reproduce Docker Desktop’s container metadata automatically. Recheck each setting that is important to the workload:

  • Image archive format and CPU architecture support.
  • Port publishing and network names.
  • Volume mount paths and volume ownership.
  • Environment variables, secrets, and user IDs.
  • Restart and health-check behavior.
  • Any option that depends on a Docker-specific daemon or Desktop integration.

Run the application on the target host and validate its real workflow rather than treating a successful image load as proof of compatibility.

Migration paths compared

Migration path Data completeness Target compatibility questions Persistent-data work Recovery confidence
Docker Desktop to another Docker engine Images, writable-layer commits, volumes, bind mounts, and configuration must still be handled separately. Are the image platforms, engine version, networks, and runtime options compatible? Restore each volume and copy each host directory. High only after recreating and testing the services.
Docker Desktop to Podman Supported image archives can move image content; container metadata and volume data are separate transfers. Does the installed Podman version accept the archive format and required settings? Create Podman volumes, restore archives, and verify ownership and mounts. Depends on application tests and any Docker-specific features.
Docker Desktop to a new computer Portable archives, registry images, volumes, bind-mounted files, and configuration are all required. Which host, VM, or remote engine does the CLI address, and does it support the required platform? Copy archives and host directories, then restore before starting services. High when the source is retained through a complete validation run.
Context switch only No images, containers, or volume contents are copied. Only the endpoint configuration changes. No restoration occurs. Not a migration method.

Troubleshooting common migration failures

The image loaded, but the container will not start

Compare the destination architecture and image tag with the source inventory. Then inspect the recreated command, entrypoint, environment variables, ports, networks, and required mounts. An image archive does not carry all of those settings.

The application starts with an empty database

Check that the restored volume is mounted at the exact container path expected by the application. Inspect the destination volume with a temporary helper container and compare its directory tree with tar tvf output from the archive. A nested directory created during extraction is a common cause of an apparently empty data directory.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The service reports permission errors

Check the user identity configured for the container and the ownership and mode of restored files. The destination runtime or host may map users differently. Correct ownership deliberately, then repeat the application-level test; do not solve the symptom by making all data world-writable.

Some files are missing

Determine whether they were in a named volume, a bind-mounted host directory, or only the container writable layer. Restore the corresponding source. If they existed only in the writable layer, create and transfer a committed image or rebuild the change from source.

Commands appear to succeed, but the intended engine is unchanged

Run docker context show and docker info immediately before the operation. A context may point to a remote engine or a different local store. Repeat the import or restore against the correct endpoint.

Volume data is inconsistent

Restore from an application-consistent backup or dump. If the source database was writing during the tar operation, repeat the backup with the service stopped or quiesced according to the application’s guidance.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Final pre-cutover checklist

  • Every image tag and required platform is present on the destination.
  • Any container-only filesystem changes have been committed or rebuilt.
  • Every named volume has its own verified archive or application backup.
  • Every bind-mounted host directory has been copied.
  • Compose files or equivalent launch options include ports, environment, networks, mounts, and restart behavior.
  • The destination context or host is confirmed before each operation.
  • Volumes are mounted at the expected paths with usable ownership and permissions.
  • Services start in dependency order and report healthy status.
  • The application can read existing data and complete representative writes and reads.
  • The original Docker Desktop installation and volumes remain untouched until validation is complete.

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.