aurora-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jay Buffington (JIRA)" <>
Subject [jira] [Commented] (AURORA-633) Support running Docker containers
Date Thu, 28 Aug 2014 17:54:09 GMT


Jay Buffington commented on AURORA-633:

I spoke with [~wickman] about this a couple of weeks ago.  He suggested we make a {{Docker()}}
at the same level as {{Task()}}.  Based on that suggestion, [~anindya.sinha] and I came up
with this:
    container = Container(
        processes=[process_a, process_b],
        constraints=order(process_a, process_b),
        resources=Resources(cpu=1, disk=10*GB, ram=1*GB)

    job = Job( task=container, ... )
Just like {{Service()}} is a {{Job(service=True)}}, {{Docker()}} is a {{Container(type="docker")}}

The image no longer needs to be prefixed with docker:///.  When Mesos's docker containerizer
was being developed docker:/// was going to be required, but that requirement was dropped
before 0.20 was released.

This supports all features in the ContainerInfo protobuf in Mesos 0.20 (see,
which is basically just image and volumes.  

Notice the introduction of two new constants for Volume mode.  Possible values are RW and


> Support running Docker containers
> ---------------------------------
>                 Key: AURORA-633
>                 URL:
>             Project: Aurora
>          Issue Type: Epic
>          Components: Client, Scheduler
>            Reporter: Jay Buffington
>            Assignee: Jay Buffington
> Mesos 0.20 will be released soon, and it will likely include support for a docker containerizer.
 See MESOS-1524.
> To make use of this feature, I propose modifying aurora's DSL to support running docker
containers both with and without the aurora executor.
> Task would be changed to introduce a container field and make processes optional when
a container is specified.  A Task to launch a Docker container using the entry point (aka
command) specified in the container would look like this:
> {noformat}
> Task(
>     name="my-task",
>     container=Docker(
>         image="docker:///centos:6u5',
>     ),
>     resources=Resources(cpu=1, disk=10*GB, ram=1*GB)
> )
> {noformat}
> If you specify processes in your Task then the docker containerizer will fetch and launch
the aurora executor for you.  This would run {{process_a}} then {{process_b}} inside the same
docker container using the aurora executor:
> {noformat}
> Task(
>     name="my-task",
>     container=Docker(
>         image="docker:///centos:6u5',
>     ),
>     processes=[process_a, process_b],
>     constraints=order(process_a, process_b),
>     resources=Resources(cpu=1, disk=10*GB, ram=1*GB)
> )
> {noformat}
> The Docker() struct would closely model the fields that will be in the DockerInfo protobuf
message detailed here:

This message was sent by Atlassian JIRA

View raw message