Docker Community Forums

Share and learn in the Docker community.

Beginner: leveraging docker for small network

Hello all, new docker user here.

I have the task of building a small network and was hoping I could validate some observations and benefit from some suggestions. I have been learning/trying docker for about 2 weeks and probably have more question now than before I started.

Public zone:
Web server: A small, read-only joomla website with a lamp/lemp stack.
Email server: ubuntu/dovecot (50 users, 100GB storage)

Private (vpn):
ERP server: ubuntu
Filesync: OwnCloud/ubuntu
Project management: Redmine

Two data sites:

  1. Data center with adequate hardware, ESXI
  2. AWS EC2

High availibility: email + web servers
Environments to test updates
Dev to Testing to Production pipeline for website (maybe w/ jenkins)
Ability for end-user to promote website to production
Access to VPN from www

My current idea is to put the main web and email servers on AWS and build the vpn inside the data center. The vpn does not need be HA. Considering that I am new to ‘orchestration’, I can see a lot of different ways I can leverage docker to fit the requirements but I am curious as to how experienced Docker users would approach this problem.

The following are some questions which I have:

  1. Should I use a Docker-registry container to store my images? I certainly see the advantages of managing all the backups as an image, but are there any caveats?

  2. The website is SSL so I was planning to use nginx as a ssl-terminating RProxy to the different “dev”, “test” and “production” containers. A “promote to production” could loosely be done by adjusting the RProxy to point to “test” and re-assigning the other containers etc (using docker-gen). Would this approach be recommended?

  3. Since the website, for now, is read-only, I thought the simplest solution would be to include mysql in the same container as nginx. This would also simplify backups by having to manage just one image.

  4. I tried finding examples of people’s experience running a mail server inside a container to little success. Are people/companies actively doing this? Postfix/Dovecot et al. are a few services grouped together, does this go against the docker philosophy of micro-services?

  5. Swarming - Everything we have is low load, how would swarming help me? Even if I seperate mysql from nginx (each in their own container), I would still need to replicate mysql to both data sites for HA…is my understanding. I was not able to confirm that the Galera project did this either.