Create a repository¶
Since MSR is secure by default, you need to create the image repository before being able to push the image to MSR.
In this example, we’ll create the
wordpress repository in MSR.
To create an image repository for the first time, log in to
https://<msr-url>with your MKE credentials.
Select Repositories from the left navigation pane and click New repository on the upper right corner of the Repositories page.
Select your namespace and enter a name for your repository (upper case letters and some special characters not accepted). You can optionally add a description.
Choose whether your repository is
Public repositories are visible to all users, but can only be changed by users with write permissions to them.
Private repositories can only be seen by users that have been granted permissions to that repository.
Click Create to create the repository.
When creating a repository in MSR, the full name of the repository becomes
<msr-domain-name>/<user-or-org>/<repository-name>. In this example, the full name of our repository will be
Optional. Click Show advanced settings to make your tags immutable or set your image scanning trigger.
Starting in DTR 2.6, repository admins can enable tag pruning by setting a tag limit. This can only be set if you turn off Immutability and allow your repository tags to be overwritten.
Image name size for MSR
When creating an image name for use with MSR ensure that the organization and repository name has less than 56 characters and that the entire image name which includes domain, organization and repository name does not exceed 255 characters.
The 56-character <user-or-org/repository-name> limit in MSR is due to an underlying limitation in how the image name information is stored within MSR metadata in RethinkDB. RethinkDB currently has a Primary Key length limit of 127 characters.
When MSR stores the above data it appends a sha256sum comprised of 72 characters to the end of the value to ensure uniqueness within the database. If the <user-or-org/repository-name> exceeds 56 characters it will then exceed the 127 character limit in RethinkDB (72+56=128).
While you can enable just-in-time creation of multi-archictecture image repositories when creating a repository via the API, Docker does not recommend using this option. This breaks content trust and causes other issues. To manage Docker image manifests and manifest lists, use the experimental CLI command, docker manifest, instead.