Docker Registry question

Probably a basic question which I am still trying to figure out. I have docker registry to push and pull the image. My scenario is that I have created a docker compose(not stack) with multiple dependent services(Ex: 2 services and a DB). All of them are needed to run the end to end solution. Doing a docker pull for each image, another user will not know the dependent services. I can use docker-compose pull which will pull everything needed. But only I know about it. How will another user figure out the dependency and use docker pull? Is there docker-compose like registry? Or I am not understanding the registry concept correctly?

You should just publish your docker-compose.yml file. It’s small enough that you can send it as an email attachment or include it in your GitHub repository or include it in your product installation materials.

Even if your image were totally self-contained, there tend to be a lot of configuration options. It’s never just docker run imagename:tag: you need to publish some ports, and probably set some environment variables, and possibly inject some configuration, and by the time you’ve done that a “minimal” docker run command is six lines long. Read through the official documentation for the mysql image: there tend to be a lot of configuration options, for something that’s otherwise pretty straightforward.

Once you start saying “docker run it, but remember to -d, and use -p to publish ports, and you need to set -e these environment variables, and if you want to review the logs you probably need to -v mount a host directory to see them, and…”, it’s probably easier to just give out a reference Docker Compose YAML file.

[In Kubernetes, which is the same concept only at much bigger scale, there’s a whole project (Helm) dedicated to distributing the YAML files that describe an installation, and a reference set of charts for a range of common things.]

Ok. Got it. Was making sure I am not missing anything on how to distribute docker-compose. So, will use the read me file to describe the dependencies with other images and how to run it.