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

Tom Arnfeld commented on MESOS-1524:
------------------------------------

I agree a first step of using the docker CLI would be great, and as 
you/[~tknaup] pointed out a lot of the thinking and work has been done to get 
that up and running; If anyone is interested, these are probably the most 
prominent that I ran into (and i'm sure [~solidsnack] did too).

- Mounting the sandbox directory can be problematic if the path contains a 
colon, due to docker's CLI parser.
- The container has to share the hosts network, even though port forwarding 
exists. This is because (not sure if libprocess would do the same) the executor 
will pick up the IP of the host->container bridge which isn't accessible 
externally.
- Docker itself doesn't support reading any metrics from their API (so you have 
to go behind docker straight to the cgroup fs)
- Docker itself doesn't support any way to modify the limits or ports of a 
running (or stopped) container. The former can be done via the cgroup fs (much 
the same as the existing cgroup containerizer) and i'm not familiar with a 
method for the latter.
- Docker doesn't actually pull an image if it exists in it's local cache. This 
is problematic because if you update a tag on a docker registry (e.g a private 
one) a slave that has previously launched an executor with that image won't 
download the new one... so you can get various inconsistencies. The only way 
around this currently is to {{pull}} first.

(Hopefully that might come in handy for whoever implements the C++ 
containerizer).

The docker guys seem to be pretty good at keeping the docker CLI API consistent 
and backwards compatible, and i'm sure that'll be even better now they've hit 
1.0. Though users will just be installing the latest version, so it'd be great 
to try and keep the latest version of mesos in working order with the latest 
version of docker.

[~benjaminhindman] – I'm a little concerned about that approach, a couple of 
reasons off the top of my head...

- I've always been a huge fan of how the External Containerizer was implemented 
and I feel like we'd be going backwards to try and squeeze in some kind of "run 
in docker" option
- A first iteration that only supported a concept that's parallel to the 
executor wouldn't work too well
    - First of all, the "task"/"executor" split is something everyone i've 
spoken to about Mesos has been impressed with, and it opens up some very 
intriguing patterns for distribution
    - Most frameworks seem to use a custom executor, even if it wouldn't be 
*strictly* required because they're not launching Mesos Tasks. Namely _Hadoop 
on Mesos_, _Jenkins on Mesos_ and _Spark on Mesos_ (in coarse mode).

I'm assuming by your comment that since this is something that sits parallel to 
the executor, meaning you can't run executors?

Thanks for creating a new issues, [~jaybuff]!

> Implement Docker support in Mesos
> ---------------------------------
>
>                 Key: MESOS-1524
>                 URL: https://issues.apache.org/jira/browse/MESOS-1524
>             Project: Mesos
>          Issue Type: Epic
>            Reporter: Tobi Knaup
>            Assignee: Benjamin Hindman
>
> There have been two projects to add Docker support to Mesos, first via an 
> executor, and more recently via an external containerizer written in Python - 
> Deimos: https://github.com/mesosphere/deimos
> We've got a lot of feedback from folks who use Docker and Mesos, and the main 
> wish was to make Docker a first class citizen in Mesos instead of a plugin 
> that needs to be installed separately. Mesos has been using Linux containers 
> for a long time, first via LXC, then via cgroups, and now also via the 
> external containerizer. For a long time it wasn't clear what the winning 
> technology would be, but with Docker becoming the de-facto standard for 
> handling containers I think Mesos should make it a first class citizen and 
> part of core.
> Let's use this JIRA to track wishes/feedback on the implementation.



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

Reply via email to