Do not use
registry:latest! This image points to the old v1 registry. That Python project is no longer being developed. The new v2 registry is written in Go and is actively maintained. When people refer to a "private registry" they are referring to the v2 registry, not the v1 registry!
docker run -d -p 5000:5000 --name="registry" registry:2
The above command runs the newest version of the registry, which can be found in the Docker Distribution project.
For more examples of image management features, such as tagging, pulling, or pushing, see the section on managing images.
Configuring a private registry to use an AWS S3 backend is easy. The registry can do this automatically with the right configuration. Here is an example of what should be in your
storage: s3: accesskey: AKAAAAAACCCCCCCBBBDA secretkey: rn9rjnNuX44iK+26qpM4cDEoOnonbBW98FYaiDtS region: us-east-1 bucket: registry.example.com encrypt: false secure: true v4auth: true chunksize: 5242880 rootdirectory: /registry
secretkey fields are IAM credentials with specific S3 permissions (see the documentation for more information). It can just as easily use credentials with the
AmazonS3FullAccess policy attached. The
region is the region of your S3 bucket. The
bucket is the bucket name. You may elect to store your images encrypted with
secure field is to indicate the use of HTTPS. You should generally set
v4auth to true, even though its default value is false. The
chunksize field allows you to abide by the S3 API requirement that chunked uploads are at least five megabytes in size. Finally,
rootdirectory specifies a directory underneath your S3 bucket to use.
There are other storage backends that can be configured just as easily.