Hi,

thanks to both of you for your reply.  For the moment I switched to using a
Mesos container without an underlying Docker image, and then execute
`docker run myimage <cmd>` in that container.  I guess there will be a
number of issues with that approach at some point, but for the moment it is
ok.

Thanks,
Tobias

On Thu, Nov 3, 2016 at 2:58 PM, Jie Yu <[email protected]> wrote:

> To add to haosdent's reply:
>
> - I have a USER directive in my Dockerfile in order for the CMD to be
>> executed as that user, but that does not seem to be supported (yet?) by the
>> Docker image provider. Is there any method (except `sudo`/`setuser`) to
>> achieve running as a user present in the image's /etc/fstab?
>
>
> Currently, USER directive in Dockerfile is not honored. You can think of
> that as using `-u` when doing docker run, and uses the uid of the 'user' on
> the host ('user' here is what's specified in CommandInfo.user or
> frameworkInfo.user if the former is not specified). The reason we need to
> do that is because we want to make sure the processes in the container can
> access its sandbox and persistent volumes which is owned by 'user'.
>
> This can be potentially solved by using user namespace as haosdent pointed
> out.
>
> - I may have to run untrusted code, so can I make sure that users cannot
> break out of the chroot? What about UID namespacing, so that root in the
> chroot does not become root on the host system when breaking out?
>
> You can run your code using an unprivileged user (e.g., nobody). You just
> need to set CommandInfo.user.
>
> - Jie
>
> On Wed, Nov 2, 2016 at 7:14 PM, haosdent <[email protected]> wrote:
>
>> >- Is it possible to hide host processes from the container?
>> You may consider to use the namespaces/pid isolator, add `namespaces/pid`
>> in the `--isolation` flag when launch Mesos Agent
>> > -Is it possible to run processes that open network ports (possibly
>> already open on the host system) and have them mapped to different ports on
>> the host system, just as with Docker's `-p`?
>> You need to use CNI port mapping. Refer to its document
>> https://reviews.apache.org/r/53015/
>> >  Is there any method (except `sudo`/`setuser`) to achieve running as a
>> user present in the image's /etc/fstab?
>> Mesos don't support user namespace now, need to use su to switch users
>>
>> On Thu, Nov 3, 2016 at 9:56 AM, Tobias Pfeiffer <[email protected]> wrote:
>>
>>> Actually, say I was in a fancy mood, could I actually *not* use the
>>> Docker image provider and instead run `nvidia-docker run [more hand-crafted
>>> parameters] myimage <cmd>` as an ordinary command within the Mesos
>>> container, or would I have to dig very deep into Mesos to find the right
>>> parameters to pass to nvidia-docker?
>>>
>>> Thanks
>>> Tobias
>>>
>>> On Thu, Nov 3, 2016 at 10:18 AM, Tobias Pfeiffer <[email protected]>
>>> wrote:
>>>
>>>> Hi,
>>>>
>>>> I asked this question also yesterday in the #mesos channel on IRC, but
>>>> I guess due to timezone differences there were not many people awake and/or
>>>> working, sorry for reposting. (Maybe someone answered after I left, but it
>>>> seems that the IRC bot is only archiving channel joins/leaves? ->
>>>> http://wilderness.apache.org/channels/?f=apache-syncope/2016-11-02)
>>>>
>>>> My question is about the Mesos containerizer. I want to run code using
>>>> the Mesos GPU support and the docs state that this is currently only
>>>> supported by the Mesos containerizer. So my understanding of using the
>>>> Mesos containerizer with Docker images is that
>>>> - the content of the Docker images is unpacked to the filesystem (using
>>>> one of the provisioner backends, such as "copy" or "overlay")
>>>> - the user's command is executed in a chroot in that directory.
>>>> Is that correct?
>>>>
>>>> The first thing I noticed is (besides a much higher latency due to the
>>>> image provisioning process) that `ps aux` and `hostname` expose details of
>>>> the host system, so I was wondering about the level of isolation that I can
>>>> achieve with the Mesos containerizer, as opposed to running in a Docker
>>>> container. In particular:
>>>> - Is it possible to hide host processes from the container?
>>>> - Is it possible to run processes that open network ports (possibly
>>>> already open on the host system) and have them mapped to different ports on
>>>> the host system, just as with Docker's `-p`?
>>>> - I have a USER directive in my Dockerfile in order for the CMD to be
>>>> executed as that user, but that does not seem to be supported (yet?) by the
>>>> Docker image provider. Is there any method (except `sudo`/`setuser`) to
>>>> achieve running as a user present in the image's /etc/fstab?
>>>> - I may have to run untrusted code, so can I make sure that users
>>>> cannot break out of the chroot? What about UID namespacing, so that root in
>>>> the chroot does not become root on the host system when breaking out?
>>>>
>>>> Thanks for your help
>>>> Tobias
>>>>
>>>
>>>
>>
>>
>> --
>> Best Regards,
>> Haosdent Huang
>>
>
>

Reply via email to