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?

  • golang net.LookupHost in docker container return 127.0.53.53
  • Where to put ebextensions config in AWS Elastic Beanstalk Docker deploy with dockerrun source bundle?
  • Connecting IBM Containers (Dockers) to Watson IoT service instance
  • Point different domains to different Docker containers on a single EC2 instance?
  • Docker-Machine AWS Policies
  • Docker OSX Unable to Access Container via IP Address
  • Run command 'node filename.js' inside a Docker container
  • Running multiple docker containers in same host
  • Where are docker's registered drivers being initialized in the source code?
  • access service from host when ports and not linked
  • How to allow ptrace in docker container
  • app source not being imported into docker container with docker-compose
  • 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.