Docker Registry
Docker containers have revolutionized how applications and their infrastructure are packaged and deployed. Docker Hub is a registry for container images.
Nexus Repository supports hosting and proxying Docker registries. You may expose multiple repositories to the client-side tools in a single URL as a repository group. This reduces the time and bandwidth usage of accessing Docker images in a registry as well as sharing your images in hosted repositories.
Docker Port Scalability
The Docker client has strict requirements for the path where images are hosted in a registry. While you may configure the source repository to use, it is not possible to use an arbitrary base path where images are stored in a registry.
The client's registry is specified with a hostname domain and port with a path to specific images in the registry. You are not able to specify a registry application path.
example.domain:443/some/custom/image
By default, Nexus Repository exposes registries with a common repository path. A Docker image in the repository "docker-hosted" might be accessible at the below URL:
example.domain:443/nexus3/repository/docker-hosted/some/custom/image
example.domain
= hostname443
= port; the Docker client expects secure connectivity (See our SSL documentation)/nexus3
= application context path/repository/docker-hosted
= base registry path/some/custom/image
= specific image path in the registry
The Docker client does not accept the application context path or base registry path as Docker needs the registry exposed at the root of the host + port that it is accessing.
Nexus Repository manages this Docker limitation with the following methods:
Using a subdomain connector to forward subdomains to the correct repository (available for PRO licenses)
Using a reverse proxy to redirect traffic to the correct application context path
Using port connectors (limit to only 20 connectors/repositories)
Supporting OCI Images
The OCI specification versions 1.0.0 and 1.0.1 are supported within Docker repositories. This format support is available as of the 3.71 release.
As part of OCI support the following are some of the changes provided:
Blob upload allows uploads of any arbitrary binary format ("application/octet-stream" content-type) when "Strict Content Type Validation" is enabled
"Location" header are part of the manifest upload response
Endpoint that allows user to delete tag added: DELETE /v2/{name}/manifests/{tag}
The Docker image "mediaType" property is now optional
Visit the Open Containers Initiative documentation for details on the format.
Docker Manifest Lists
Docker manifest lists allow a manifest to represent support for multiple architectures while maintaining a single image:tag
reference format.
See the Docker documentation for information on Docker's schema specification.
Supported Docker Client
The minimum version of the Docker client that works with Nexus Repository is version 1.8 though we highly recommend staying on the latest version when possible. Docker is a fast-moving project and requires the usage of current operating system versions and tools.
Use the official documentation as a reference and help for your usage.