Docker images generally provided by registries. Docker officially provide allready one public registry for all Docker users. In this tutorial we will look Docker Registry related information.
Public Registry
Public registries generally provide for general usage for Docker users for different purposes. Some popular companies or software vendors provides their public registries without any fee. For example Ubuntu images can be get from following public registry.
https://partner-images.canonical.com/core/
List Of Official Public Repositories
In order to get all public repositories we will use following url where popular software images are listed.
https://hub.docker.com/explore/

Private Registry
Private registries generally use inside a group, company or organization. We can setup our own private registry where we can secure and manage images and repository according to our needs. This will be also helpful if we need modification of images and installation of priority software inside them. Private registry created with docker run
command.
Authentication
Security is important factor for Docker images. One of the important step for security is authentication. We can set up authentication for our private registries or authentication while connecting remote registries. Important factor for authentication is TLS. In order to use authentication we must setup TLS for registry.
Amazon S3
We can use Amazon S3
in order to store registries. We provide some configuration to the Amazon S3 which is defined in the following link.
https://docs.docker.com/datacenter/dtr/2.2/guides/admin/configure/external-storage/s3/#configure-dtr
Version 2
Version 2 specifies the HTTP API version. API is used to manage Docker registries. We can use Version 2 HTTP API for the following issues
- Image Verification
- PULL Image
- PUSH Image
- Resumable PUSH
- Resumable PULL
- LAYER UPLOAD DE_DUPLICATION
User Interface
While working images for a private registry it may be complicated for newcomer. There are different User Interfaces for Docker Registry. Those are provides web interface to create, delete, modify, list images and related information. Here some of them
- https://github.com/atc-/docker-registry-ui
- https://hub.docker.com/r/joxit/docker-registry-ui/
- https://hub.docker.com/r/hyper/docker-registry-web/
There are also some Docker Registry Hosting Services available next to the famous Docker Hub. Some of them provide rely nice features like LDAP/AD and OAuth. If you want to use a docker registry in a corporate environment you definitely want to have something for multiple users and full control.