The Distribution Project consists of several components, some of which are still being defined. This document defines the high-level goals of the project, identifies the current components, and defines the release-relationship to the Docker Platform.
- Distribution Goals
- Distribution Components
- Project Planning: release-relationship to the Docker Platform.
- Replace the existing docker registry implementation as the primary implementation.
- Replace the existing push and pull code in the docker engine with the distribution package.
- Define a strong data model for distributing docker images
- Provide a flexible distribution tool kit for use in the docker platform
- Unlock new distribution models
Components of the Distribution Project are managed via github milestones. Upcoming features and bugfixes for a component will be added to the relevant milestone. If a feature or bugfix is not part of a milestone, it is currently unscheduled for implementation.
Registry 2.0 is the first release of the next-generation registry. This is primarily focused on implementing the new registry API, with a focus on security and performance.
Features:
- Faster push and pull
- New, more efficient implementation
- Simplified deployment
- Full API specification for V2 protocol
- Pluggable storage system (s3, azure, filesystem and inmemory supported)
- Immutable manifest references (#46)
- Webhook notification system (#42)
- Native TLS Support (#132)
- Pluggable authentication system
- Health Checks (#230)
Planned Features:
NOTE: This feature list is incomplete at this time.
- Support for Manifest V2, Schema 2 and explicit tagging objects (#62, #173)
- Mirroring (#19)
- Flexible client package based on distribution interfaces (#193
TBD
At its core, the Distribution Project is a set of Go packages that make up Distribution Components. At this time, most of these packages make up the Registry implementation.
The package itself is considered unstable. If you're using it, please take care to vendor the dependent version.
For feature additions, please see the Registry section. In the future, we may break out a separate Roadmap for distribution-specific features that apply to more than just the registry.
Distribution Components map to Docker Platform Releases via the use of labels. Project Pages are used to define the set of features that are included in each Docker Platform Release.
Platform Version | Label | Planning |
---|---|---|
Docker 1.6 | Docker/1.6 | Project Page |
Docker 1.7 | Docker/1.7 | Project Page |
Docker 1.8 | Docker/1.8 | Project Page |