I'd like to host my own container images centrally in my network so that I can both cache the images (if dockerhub or similar goes down) but also host my own images that I don't want public. Anyone doing this?
Apart from the registries you have in GitLab and GitHub if you are looking for something more generic like Docker Hub you have Quay (from RedHat). It works very well and has a pretty nice interface (especially the new one that is in testing).
Well, if you want private images it is normal that they charge you for it. What I advise you to do is to make the images public and mount the private part as a volume. This way you can upload the images wherever you want without worrying.
Another option if you want the resulting image to have something private is to create as much as you can in a public image and have a script that adds the private part as the last layer.