Since DTR is secure by default, you need to create the image repository before being able to push the image to DTR.
In this example, we’ll create the wordpress
repository in DTR.
To create an image repository for the first time, log in to
https://<dtr-url>
with your UCP 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. You can optionally add a description.
Choose whether your repository is public
or private
:
Click Create to create the repository.
When creating a repository in DTR, the full name of the repository
becomes <dtr-domain-name>/<user-or-org>/<repository-name>
. In
this example, the full name of our repository will be
dtr-example.com/test-user-1/wordpress
.
Optional: Click Show advanced settings to make your tags immutable or set your image scanning trigger.
Note
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 DTR
When creating an image name for use with DTR 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 DTR is due to an underlying limitation in how the image name information is stored within DTR metadata in RethinkDB. RethinkDB currently has a Primary Key length limit of 127 characters.
When DTR 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).
Multi-architecture images
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.