By default MSR uses the local filesystem of the node where it is running to store your Docker images. You can configure MSR to use an external storage backend, for improved performance or high availability.
If your MSR deployment has a single replica, you can continue using the local filesystem for storing your Docker images. If your MSR deployment has multiple replicas, make sure all replicas are using the same storage backend for high availability. Whenever a user pulls an image, the MSR node serving the request needs to have access to that image.
MSR supports the following storage systems:
Note
Some of the previous links are meant to be informative and are not representative of MSR’s implementation of these storage systems.
To configure the storage backend, log in to the MSR web interface as an admin, and navigate to System > Storage.
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.
By default, MSR 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
mirantis/dtr install --dtr-storage-volume
or
mirantis/dtr reconfigure --dtr-storage-volume
.
Warning
When running DTR 2.5 (with experimental online garbage collection) and MSR
2.6.0 to 2.6.3, there is an issue with reconfiguring MSR with
--nfs-storage-url
which leads to erased tags. Make sure to
back up your MSR metadata before you proceed.
To work around the --nfs-storage-url
flag issue, manually create a
storage volume on each MSR node. If MSR is already installed in your
cluster, reconfigure MSR
with the --dtr-storage-volume
flag using your newly-created volume.
If you’re deploying MSR with high-availability, you need to use NFS or any other centralized storage backend so that all your MSR replicas have access to the same images.
To check how much space your images are utilizing in the local filesystem, SSH into the MSR 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-<msr-replica>))
{% endraw %}
You can configure your MSR replicas to store images on an NFS partition, so that all replicas can share the same storage backend.
MSR supports Amazon S3 or other storage systems that are S3-compatible like Minio. Learn how to configure MSR with Amazon S3.