← Back to list

Installing Docker on Linux Mint With Docker Data Stored on a Separate HDD

A Practical Guide to Prevent Root Filesystem Exhaustion

Akash · 2026-05-23 07:59 · 0 claps · 3.7 min read
#docker #linux #one-piece
Open on Medium ↗
Wiki topics: ☁️ · DevOps & Cloud 🔓 · Open Source

Installing Docker on Linux Mint With Docker Data Stored on a Separate HDD

A Practical Guide to Prevent Root Filesystem Exhaustion

Author: Akash Platform: Linux Mint Cinnamon (Ubuntu Noble Base) Docker Version: 29.5.x Storage Architecture:

  • OS → NVMe SSD
  • Docker Runtime Data → NTFS HDD

Abstract

This document details the complete process of installing Docker Engine on Linux Mint Cinnamon while redirecting Docker runtime storage away from the root SSD onto a larger secondary HDD.

The investigation covers:

  • Linux Mint repository compatibility issues
  • Docker repository configuration
  • Permission management
  • Docker daemon validation
  • Moving Docker runtime storage to HDD
  • Filesystem considerations for NTFS-backed Docker storage
  • Operational risks and architectural tradeoffs

The final configuration successfully achieved:

  • lightweight Docker installation on SSD,
  • large-capacity container/image storage on HDD,
  • preservation of limited root SSD capacity.

1. Motivation

The target system contained:

DeviceTypePurposeNVMe SSD (~120GB)ext4Linux OS1TB HDDNTFSData + Docker storage

The problem: Docker stores images, containers, build layers, logs, and volumes under:

/var/lib/docker

By default, this resides on the root filesystem.

On small SSD systems, Docker eventually causes:

  • root partition exhaustion,
  • package manager failures,
  • system instability,
  • build failures,
  • container crashes.

Therefore: a storage-redirection architecture was required.

2. Initial Environment

Filesystem Layout

Output from:

lsblk -f
sda2      ntfs         Data
nvme0n1p3 ext4

Important distinction:

PartitionFilesystemLinux Rootext4Data HDDNTFS

3. Docker Installation Workflow

3.1 Prerequisites

Installed prerequisite packages:

sudo apt install -y ca-certificates curl gnupg lsb-release

3.2 Docker GPG Key Installation

Created keyring directory:

sudo mkdir -p /etc/apt/keyrings

Added official Docker GPG key:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

4. Linux Mint Repository Compatibility Problem

Initial Failure

The first repository configuration used:

$(lsb_release -cs)

which returned the Mint codename:

xia

APT update then failed with:

E: The repository 'https://download.docker.com/linux/ubuntu xia Release' does not have a Release file.

5. Root Cause Analysis

Linux Mint is Ubuntu-based but uses Mint-specific release codenames.

Docker repositories support Ubuntu codenames such as:

  • jammy
  • noble

but not Mint identifiers like:

  • xia
  • virginia

This creates a compatibility abstraction leak common across:

  • Docker
  • Kubernetes
  • NVIDIA
  • Hashicorp repositories

6. Correct Repository Configuration

The broken repository was removed:

sudo rm /etc/apt/sources.list.d/docker.list

Then recreated manually using Ubuntu Noble:

echo \
  "deb [arch=$(dpkg --print-architecture) \
  signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu noble stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

7. Docker Installation

Repository metadata refreshed:

sudo apt update

Docker packages installed:

sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

8. Docker Daemon Verification

Docker service validation:

sudo systemctl status docker

Result:

Active: active (running)

Daemon initialized successfully using:

  • overlay filesystem backend, BuildKit, containerd runtime.

9. Docker Socket Permission Issue

Initial Docker CLI access failed:

permission denied while trying to connect to the docker API socket

Cause: user not added to Docker group.

10. Permission Fix

User added to Docker group:

sudo usermod -aG docker $USER

Group session refreshed:

newgrp docker

Verification succeeded:

docker info

11. Redirecting Docker Storage to HDD

Objective

Keep:

  • Docker binaries on SSD Move: images layers volumes container runtime data onto HDD.

12. Docker Data Root Configuration

A dedicated Docker directory already existed on HDD:

/media/User/Data/ALL-WORK/Softwares/Dockers

Docker daemon configuration:

sudo nano /etc/docker/daemon.json

Configured as:

{
  "data-root": "/media/User/Data/ALL-WORK/Softwares/Dockers"
}

13. Final Verification

Validation command:

docker info | grep "Docker Root Dir"

Output:

Docker Root Dir: /media/User/Data/ALL-WORK/Softwares/Dockers

This confirmed:

  • Docker runtime data successfully redirected, root SSD preserved from container storage growth.

14. Storage Driver Validation

Docker storage backend validation:

docker info | grep "Storage Driver"

Expected output:

overlay2

or:

overlayfs

This confirms layered filesystem support is operational.

15. Architectural Assessment

Current Architecture

ComponentLocationLinux OSNVMe SSDDocker EngineNVMe SSDDocker Runtime DataNTFS HDD

16. Advantages of This Design

SSD Preserved

Avoids:

  • root filesystem exhaustion,
  • package failures,
  • runaway Docker image growth.

Large Container Capacity

HDD provides:

  • large image storage,
  • build cache space,
  • volume persistence.

Operational Simplicity

No separate partitioning or dedicated Docker disk required.

17. Risks and Tradeoffs

NTFS Backend Limitations

The Docker data directory resides on NTFS mounted through FUSE.

This introduces limitations:

AreaPotential IssuePermissionsUID/GID inconsistenciesPerformanceSlower metadata operationsDatabasesPoor random-write performanceOverlayFSEdge-case instabilityFile WatchingInotify inconsistencies

18. HDD Characteristics

SMART analysis identified the drive model as:

WDC WD10SPZX

This is an SMR (Shingled Magnetic Recording) HDD.

SMR drives:

  • perform adequately for sequential workloads,
  • degrade under heavy random writes.

Docker workloads that may stress SMR:

  • CI/CD pipelines,
  • database containers,
  • image rebuild churn,
  • Kubernetes.

19. Recommended Use Cases

This architecture is suitable for:

  • learning Docker,
  • development environments,
  • web applications,
  • lightweight containers,
  • Docker Compose stacks,
  • experimentation.

Less suitable for:

  • production databases,
  • Kubernetes clusters,
  • heavy persistent write workloads.

20. Operational Maintenance

Monitor Docker Disk Usage

Check usage:

docker system df

Remove Unused Objects

Cleanup:

docker system prune

Aggressive cleanup:

docker system prune -a

21. Critical Operational Dependency

Docker now depends on successful HDD mounting.

If the HDD mount fails during boot:

  • Docker may fail, or Docker may silently recreate directories on root SSD.

This is a subtle but important operational risk.

22. Long-Term Recommendation

For future improvement:

Preferred Architecture

Eventually migrate Docker runtime storage onto:

  • ext4, XFS. or another Linux-native filesystem.

This would eliminate:

  • NTFS permission translation issues,
  • FUSE overhead,
  • overlay filesystem edge cases.

23. Final Conclusion

The final system successfully achieved:

  • stable Docker installation on Linux Mint,
  • resolution of repository compatibility issues,
  • user-level Docker access,
  • Docker runtime storage redirected onto HDD.

The architecture is operationally sound for development and learning environments while preserving limited SSD capacity.

However, the solution also demonstrates an important Linux operational principle:

Filesystem compatibility layers are acceptable for convenience, but native Linux filesystems remain the superior long-term foundation for containerized workloads.


메타데이터
post_id
f1f8930697f3
slug
installing-docker-on-linux-mint-with-docker-data-stored-on-a-separate-hdd-f1f8930697f3
url
https://medium.com/@akash-yy/installing-docker-on-linux-mint-with-docker-data-stored-on-a-separate-hdd-f1f8930697f3
canonical_url
https://medium.com/@akash-yy/installing-docker-on-linux-mint-with-docker-data-stored-on-a-separate-hdd-f1f8930697f3
author_url
https://medium.com/@akash-yy
status
ok
fetched_at
2026-06-17 08:20:12