|
1 | | -# Distribution |
| 1 | +# Distribution (Experimental) with OCI Artifact Reference Support |
2 | 2 |
|
3 | | -The Docker toolset to pack, ship, store, and deliver content. |
| 3 | +This is an experimental fork of cncf distribution, validating the [oci.artifact.manifest spec][oci-artifact-manifest] support of reference types. Reference types are required to meet the [Notary v2 Requirements][nv2-requirements] for not changing the target digest or tag, and the [Notary v2 Scenarios][nv2-scenarios] for content movement within and across registry implementations. |
4 | 4 |
|
5 | | -This repository's main product is the Open Source Docker Registry implementation |
6 | | -for storing and distributing Docker and OCI images using the |
7 | | -[OCI Distribution Specification](https://github.com/opencontainers/distribution-spec). |
8 | | -The goal of this project is to provide a simple, secure, and scalable base |
9 | | -for building a registry solution or running a simple private registry. |
| 5 | + |
10 | 6 |
|
11 | | -<img src="https://www.docker.com/sites/default/files/oyster-registry-3.png" width=200px/> |
| 7 | +See [ORAS experimental support for oci.artifact.manifest references][oras-artifacts] to `push`, `discover`, `pull` referenced artifact types. |
12 | 8 |
|
13 | | -[](https://travis-ci.org/docker/distribution) |
14 | | -[](https://godoc.org/github.com/docker/distribution) |
15 | | - |
16 | | -This repository contains the following components: |
17 | | - |
18 | | -|**Component** |Description | |
19 | | -|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |
20 | | -| **registry** | An implementation of the [OCI Distribution Specification](https://github.com/opencontainers/distribution-spec). | |
21 | | -| **libraries** | A rich set of libraries for interacting with distribution components. Please see [godoc](https://godoc.org/github.com/docker/distribution) for details. **Note**: The interfaces for these libraries are **unstable**. | |
22 | | -| **documentation** | Docker's full documentation set is available at [docs.docker.com](https://docs.docker.com). This repository [contains the subset](docs/) related just to the registry. | |
23 | | - |
24 | | -### How does this integrate with Docker, containerd, and other OCI client? |
25 | | - |
26 | | -Clients implement against the OCI specification and communicate with the |
27 | | -registry using HTTP. This project contains an client implementation which |
28 | | -is currently in use by Docker, however, it is deprecated for the |
29 | | -[implementation in containerd](https://github.com/containerd/containerd/tree/master/remotes/docker) |
30 | | -and will not support new features. |
31 | | - |
32 | | -### What are the long term goals of the Distribution project? |
33 | | - |
34 | | -The _Distribution_ project has the further long term goal of providing a |
35 | | -secure tool chain for distributing content. The specifications, APIs and tools |
36 | | -should be as useful with Docker as they are without. |
37 | | - |
38 | | -Our goal is to design a professional grade and extensible content distribution |
39 | | -system that allow users to: |
40 | | - |
41 | | -* Enjoy an efficient, secured and reliable way to store, manage, package and |
42 | | - exchange content |
43 | | -* Hack/roll their own on top of healthy open-source components |
44 | | -* Implement their own home made solution through good specs, and solid |
45 | | - extensions mechanism. |
46 | | - |
47 | | -### Who needs to deploy a registry? |
48 | | - |
49 | | -By default, Docker users pull images from Docker's public registry instance. |
50 | | -[Installing Docker](https://docs.docker.com/engine/installation/) gives users this |
51 | | -ability. Users can also push images to a repository on Docker's public registry, |
52 | | -if they have a [Docker Hub](https://hub.docker.com/) account. |
53 | | - |
54 | | -For some users and even companies, this default behavior is sufficient. For |
55 | | -others, it is not. |
56 | | - |
57 | | -For example, users with their own software products may want to maintain a |
58 | | -registry for private, company images. Also, you may wish to deploy your own |
59 | | -image repository for images used to test or in continuous integration. For these |
60 | | -use cases and others, [deploying your own registry instance](https://github.com/docker/docker.github.io/blob/master/registry/deploying.md) |
61 | | -may be the better choice. |
62 | | - |
63 | | -### Migration to Registry 2.0 |
64 | | - |
65 | | -For those who have previously deployed their own registry based on the Registry |
66 | | -1.0 implementation and wish to deploy a Registry 2.0 while retaining images, |
67 | | -data migration is required. A tool to assist with migration efforts has been |
68 | | -created. For more information see [docker/migrator](https://github.com/docker/migrator). |
69 | | - |
70 | | -## Contribution |
71 | | - |
72 | | -Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to contribute |
73 | | -issues, fixes, and patches to this project. If you are contributing code, see |
74 | | -the instructions for [building a development environment](BUILDING.md). |
75 | | - |
76 | | -## Communication |
77 | | - |
78 | | -For async communication and long running discussions please use issues and pull requests on the github repo. |
79 | | -This will be the best place to discuss design and implementation. |
80 | | - |
81 | | -For sync communication we have a community slack with a #distribution channel that everyone is welcome to join and chat about development. |
82 | | - |
83 | | -**Slack:** Catch us in the #distribution channels on dockercommunity.slack.com. |
84 | | -[Click here for an invite to Docker community slack.](https://dockr.ly/slack) |
85 | | - |
86 | | -## Licenses |
87 | | - |
88 | | -The distribution codebase is released under the [Apache 2.0 license](LICENSE). |
89 | | -The README.md file, and files in the "docs" folder are licensed under the |
90 | | -Creative Commons Attribution 4.0 International License. You may obtain a |
91 | | -copy of the license, titled CC-BY-4.0, at http://creativecommons.org/licenses/by/4.0/. |
| 9 | +[oci-artifact-manifest]: https://github.com/SteveLasker/artifacts/blob/oci-artifact-manifest/artifact-manifest.md |
| 10 | +[nv2-requirements]: https://github.com/notaryproject/notaryproject/blob/main/requirements.md |
| 11 | +[nv2-scenarios]: https://github.com/notaryproject/notaryproject/blob/main/scenarios.md |
| 12 | +[oras-artifacts]: https://github.com/deislabs/oras/blob/prototype-2/docs/artifact-manifest.md |
0 commit comments