How to Move Docker Data to Another Location, Why It’s Useful & How to Do It

How to Move Docker Data to Another Location, Why It’s Useful & How to Do It

Project Information

Introduction

Docker makes it easy to run applications in containers, but by default, it stores its data—including images, volumes, and containers—on your system disk (usually /var/lib/docker on Linux).

Over time, this can consume significant disk space, impact performance, or simply not align with your preferred storage configuration.

Moving Docker’s storage directory to another location is a great way to manage disk space efficiently and improve performance.

In this guide, we’ll cover:

  • Why moving Docker data is useful
  • How to safely migrate Docker’s storage directory
  • Common pitfalls and solutions

Why Move Docker Data?

1. Free Up Disk Space

If your system disk is running low, moving Docker data to a larger storage drive prevents space-related issues.

2. Improve Performance

Using a fast SSD or a dedicated storage drive can reduce container startup times and boost overall performance.

3. Ensure Reliability

Separating Docker data from the OS drive minimizes risk during system upgrades or failures.

4. Centralized Data Management

In enterprise environments, moving Docker data to network storage or RAID configurations enhances scalability and disaster recovery planning.

How to Move Docker Data to Another Location

Step 1: Stop the Docker Service

Before moving the data, stop the Docker daemon to avoid corrupting files.


sudo systemctl stop docker

Step 2: Move Existing Docker Data

Find the default storage directory (usually /var/lib/docker) and move it to the new location (e.g., /mnt/docker-storage).


sudo mv /var/lib/docker /mnt/docker-storage

Step 3: Update the Docker Configuration

Modify the Docker daemon settings to recognize the new storage path.

  1. Open the Docker daemon configuration file (/etc/docker/daemon.json):

sudo nano /etc/docker/daemon.json
  1. Add or modify the data-root parameter:

{ “data-root”: “/mnt/docker-storage” }

  1. Save and exit the editor (CTRL + X then Y to confirm).

Step 4: Restart Docker

Apply the changes by restarting the Docker daemon:


sudo systemctl start docker

Verify that the data is now being stored in the new location:


docker info | grep "Docker Root Dir"

Step 5: Verify Containers & Images

Check if existing containers, images, and volumes are accessible:


docker ps -a docker images docker volume ls

If everything is working correctly, you have successfully moved Docker’s data storage.

Troubleshooting & Common Pitfalls

1. Docker Service Won’t Start

Ensure the new directory has correct permissions:


sudo chown -R root:docker /mnt/docker-storage 
sudo chmod -R 755 /mnt/docker-storage

2. Configuration Not Recognized

If the data-root setting doesn’t take effect, check for syntax errors in /etc/docker/daemon.json.

3. Storage Device Not Mounted

If you’re using external storage, ensure it’s mounted automatically on boot by adding it to /etc/fstab.

Conclusion

Moving Docker data to another location is a smart way to optimize storage, enhance performance, and improve system reliability. Whether for personal use or enterprise solutions, this method ensures Docker operates efficiently on your infrastructure.

Technologies:

My Role & Contributions