EC2 Container Service Networking

My team is exploring different toolsets (Docker Datacenter, DC/OS, etc.) for a CaaS Platform offering. We’re currently looking at Amazon EC2 Container Service (ECS) as a possible solution, but are having trouble translating our docker-compose files into ECS tasks.

Specifically, we’re not sure how to approach networking within a task in ECS. I was under the impression that a task was sort of analogous to a compose, but it seems to handle networking in a very different way.

  • Detect if my app runs in Azure
  • Docker mount S3 container
  • crontab does not get the log in log file
  • AWS ElasticBeanstalk can't find Dockerfile
  • Kubernetes and vSphere, AWS
  • Why is SSH from inside docker container to other instance/server so slow
  • E.g. the https://github.com/docker/example-voting-app expects two networks, ‘front-tier’ and ‘back-tier’ each of which seems to be stock overlay networks. How does one create these in ECS?

  • Docker can't find OpenJDK
  • Docker C++ development and CI
  • PHP FPM Docker ZF1: The session has already been started. The session id must be set first
  • How to use stdin, stdout and stderr streams after attaching to a container using Docker api?
  • How to copy files from shared directory in multiple Dockerfile?
  • Executing shell command produces nothing
  • One Solution collect form web for “EC2 Container Service Networking”

    ECS supports docker compose style container deployment using
    cmd-ecs-cli-compose.

    Please refer to the following documenation
    http://docs.aws.amazon.com/AmazonECS/latest/developerguide/cmd-ecs-cli-compose.html

    The example you have shared uses docker networking, which was added to docker in 1.9.
    Amazon ECS still does not support docker networking options when defining tasks, so you will not get the example to work as is.

    Of course you can redefine the task and use legacy docker link features to open access between containers.

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