How to arrange web application docker containers in production stage

I’m approaching to the Linux Container world by looking at one of maybe the most famous and used containers manager that is Docker. I have quite clear the advantages of using Docker at the development stage. Fast and easy creation of image including any sort of application (database, server, etc…) but I haven’t clear yet the advantages in production. I mean let’s assume two have three different instance running on AWS running docker. In one instance I decide to run a web server container (nodejs), in the second one a database container (mongodb) and the last one a cache container (redis). All these ones running in their own container running in one separate instance. The deployment is fast and easy but how many others containers can I run in the other instance and which one? I don’t mean to say the maximum number of containers. I know that it depends from the memory. I mean which other kinds of containers could have the reason to running in one of these three instance? For example I would add in the future nginx. In which of this one should I place it? Should I take another aws ec2 instance?

  • systemd, docker, or systemd-journal (on stable CoreOS) using high CPU
  • How to mount a folder in a container as locally
  • How to ship java based web application in AWS cloud using docker
  • Need help regarding ECS service in AWS
  • How to connect usb wireless interface to a Docker container on Mac OSX?
  • What is the difference between exposing docker port and creating bridge(or overlay)?
  • When using docker load on a tarball I am getting an invalid argument
  • docker registry with nginx: no such host
  • Installing netstat on docker linux container
  • Need to create listener for docker plugin on Jenkins on port 2375
  • Docker image vs container
  • Renaming a file on Docker build does not persist
  • One Solution collect form web for “How to arrange web application docker containers in production stage”

    As you said, it will depend on your resource requirements which containers you place together. However, AWS offers container service (in Preview) that allows running docker containers and comes with a scheduler that can decide where to put things. Maybe this would be an option?

    From http://aws.amazon.com/ecs/details/:

    Amazon EC2 Container Service comes with a default scheduler that
    schedules containers to help find the optimal instance placement based
    on your resource needs (e.g., CPU or RAM) and availability
    requirements. The EC2 Container Service APIs also provide you with
    complete cluster state information, allowing you to write your own
    scheduler or integrate existing 3rd party schedulers if you choose.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.