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?

  • Setting up credentials for docker and AWS windows
  • Range of IP address to be allowed from internal network for Bluemix Containers
  • Deployment on AWS Elastic Beanstalk with Docker fails
  • Docker - denied: Your Authorization Token has expired
  • Kubernetes and vSphere, AWS
  • How do I capture the console output for a container launched on ECS?
  • Docker: Are you trying to connect to a TLS-enabled daemon without TLS?
  • Can't connect to django server running inside docker container (Docker for mac)
  • django docker-compose --> memcached not working
  • Docker mounting volume for editing source code
  • How to startup up services on a Docker image?
  • Auto-restarting Docker container on Google Compute Engine
  • 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?


    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.