It's has letsencrypt built in along with a few options for file storage, including AWS/gcloud.
Getting up and running with your own registry shouldn't really take longer than half an hour. The config docs for the registry image are really helpful with this too.
But for a company it's almost always cheaper to pay for the service. That way you don't have to deal with maintenance, setting up redundancy, mirroring, etc.
That said, aws, google and quay are all competitors in this space.
For an example of just how good their image is:
I set my companies up almost a year ago, had to deal with it about once.
The docs cover a HA setup (if you really need it - most won't), data backups aren't really needed if you're using a storage backing, and I just use local file system - absolute worst case I have to wait half an hour to rebuild and push everything.
The downside risk of running your own is very low. The upside is a few bucks and you have your own private registry local to your network.
There are a lot of heavily used images out there with a bus factor of 1.
[1] https://docs.gitlab.com/ce/user/project/container_registry.h...
We also have a few issues about this, see https://gitlab.com/gitlab-org/gitlab-ce/issues/25322 and https://gitlab.com/gitlab-org/gitlab-ce/issues/20247.
I hope it helps!
I also contribute to Docker and other container technologies, and I cannot express in words how horrifically long the Dockerfile-based build and integration testing process takes. It takes about an hour in America, and more than double that in Australia.