Configure DTR image storage

Estimated reading time: 2 minutes

Configure your storage backend

By default DTR uses the local filesystem of the node where it is running to store your Docker images. You can configure DTR to use an external storage backend, for improved performance or high availability.

architecture diagram

If your DTR deployment has a single replica, you can continue using the local filesystem for storing your Docker images. If your DTR deployment has multiple replicas, make sure all replicas are using the same storage backend for high availability. Whenever a user pulls an image, the DTR node serving the request needs to have access to that image.

DTR supports the following storage systems:

Note: Some of the previous links are meant to be informative and are not representative of DTR’s implementation of these storage systems.

To configure the storage backend, log in to the DTR web interface as an admin, and navigate to System > Storage.

dtr settings

The storage configuration page gives you the most common configuration options, but you have the option to upload a configuration file in .yml, .yaml, or .txt format.

See Docker Registry Configuration for configuration options.

Local filesystem

By default, DTR creates a volume named dtr-registry-<replica-id> to store your images using the local filesystem. You can customize the name and path of the volume by using docker/dtr install --dtr-storage-volume or docker/dtr reconfigure --dtr-storage-volume.

When running DTR 2.5 (with experimental online garbage collection) and 2.6.0 to 2.6.3, there is an issue with reconfiguring DTR with --nfs-storage-url which leads to erased tags. Make sure to back up your DTR metadata before you proceed. To work around the --nfs-storage-url flag issue, manually create a storage volume on each DTR node. If DTR is already installed in your cluster, reconfigure DTR with the --dtr-storage-volume flag using your newly-created volume.

If you’re deploying DTR with high-availability, you need to use NFS or any other centralized storage backend so that all your DTR replicas have access to the same images.

To check how much space your images are utilizing in the local filesystem, SSH into the DTR node and run:


# Find the path to the volume
docker volume inspect dtr-registry-<replica-id>

# Check the disk usage
sudo du -hs \
$(dirname $(docker volume inspect --format '{{.Mountpoint}}' dtr-registry-<dtr-replica>))

NFS

You can configure your DTR replicas to store images on an NFS partition, so that all replicas can share the same storage backend.

Learn how to configure DTR with NFS.

Cloud Storage

Amazon S3

DTR supports Amazon S3 or other storage systems that are S3-compatible like Minio. Learn how to configure DTR with Amazon S3.

Where to go next

dtr, storage drivers, NFS, Azure, S3