aurora-issues mailing list archives

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

    [ https://issues.apache.org/jira/browse/AURORA-633?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14114056#comment-14114056
] 

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:
{noformat}
    container = Container(
        name="my-docker-task",
        type="docker",
        image="centos:6u5',
        volumes=Volumes(
            container_path="/mnt/foo",
            host_path="/foo",
            mode=RW
        )
        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, ... )
{noformat}
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 https://github.com/apache/mesos/blob/master/include/mesos/mesos.proto#L849),
which is basically just image and volumes.  

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

Thoughts?

> Support running Docker containers
> ---------------------------------
>
>                 Key: AURORA-633
>                 URL: https://issues.apache.org/jira/browse/AURORA-633
>             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: https://github.com/tnachen/mesos/wiki/DockerInfo-design



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message