How can I use multiple Docker containers effectively?

tl;dr I like MIAB but I want to put multiple instances on a single VM using docker. help!

I have a test instance running on a DO droplet, and for the most part, it works very well. I have not yet tested the website other than the control panel but I’m confident that stuff will be just fine.

My goal is to support three very small domains. Each domain would have less than ten email accounts and a static website, and among the domains there would be a handful of Django apps. I would like to use Mail-in-a-Box to provide email and static web services for each of the domains, but I would much rather have three separate Mail-in-a-Box instances than one instance that supports all three domains.

The docker branch on the GitHub repository is coming along nicely. Soon I think we’ll be able to have a Docker container running on a DO droplet just as effectively as the current standalone installation. This is great for people who are allergic to “curl | bash” installation instructions. They will instead be able to retrieve a trusted image from the Docker registry and connect it to a data-only container, do the setup, and be up and running lickety split. This is also potentially great for my use case in that I could build several Docker container combinations for each of the three domains but then I have to solve the problem of how to connect these containers to the external network.

Right now I’m considering a master container which effectively multiplexes web and mail to the others. Virtual hosts for the web stuff are easy enough to set up. For mail, I would probably use a Postfix config that accepted incoming email for all relevant domains and forwarded it internally to the specific mail server. I think I could provision the containers with something like fig, but I’m not quite sure how to add another domain without restarting the whole mess.

Is anyone else considering this type of deployment? Is there a better way to achieve these goals? I am eager to hear more from other folks in the same situation. Thanks!


current dockerization effort focuses on putting all services within 1 image, I would prefer multiple images each focused on their required services and docker-compose.yml files to ease the startup. With that approach, you would be able to share certain services for your multiple domain setup.