mesos-reviews mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Guangya Liu" <gyliu...@gmail.com>
Subject Re: Review Request 38910: Added `-v` flag to `docker rm`.
Date Wed, 07 Oct 2015 09:50:47 GMT


> On 十月 1, 2015, 4:31 a.m., Jojy Varghese wrote:
> > src/docker/docker.cpp, line 681
> > <https://reviews.apache.org/r/38910/diff/1/?file=1088143#file1088143line681>
> >
> >     wondering this behavior should be defaulted or not. We might be overloading
stop with more than what it should be doing isnt it? Do we always want to force remove the
volumes when docker stops?
> 
> Greg Mann wrote:
>     My & Tim's original thought was that because persistent volumes aren't explicitly
implemented for the Docker containerizer currently, we could safely make `-v` the default
behavior. However, after considering a bit more, I'm thinking that existing user workflows
might establish a Docker volume on an agent with the intention of returning to it later with
a subsequent task, in which case defaulting to `-v` would break this workflow, so making this
an optional argument may be a good idea. I'll have to think about what is the best way to
pass this option to the agent, any thoughts on that matter would be appreciated!
> 
> Greg Mann wrote:
>     After further review, I do think that we should make the default behavior include
the `-v` flag. By default, Docker will create directories in `/var/lib/docker/aufs/`, `/var/lib/docker/vfs`,
etc. depending on the filesystem used. These directories contain information related to the
Docker image itself, and they will not be deleted if the `-v` flag isn't used. Thus, if an
agent runs long enough and runs enough new Docker images, it can fill up the disk with these
default volumes.
>     
>     While it's possible that a user might hack together a "persistent volume" using Docker
volumes as they're currently implemented, we should discourage this in favor of utilizing
Mesos-monitored persistent volumes. Always using `docker rm -v` allows us to properly clean
the agent, leaving it in a good state after the containerized task has completed.
>     
>     It's also worth noting that `docker rm -v` will NOT remove volumes where a host path
has been explicitly mounted into the container (i.e. using `docker run -v /host/path:/container/path
mycontainer`). So, in fact, some volumes will be unaffected by this change. The primary purpose
of this patch is to clean the agent by removing the default volumes created in `/var/lib/docker/`.
> 
> Guangya Liu wrote:
>     Greg, so if I was using -v /host/path:/container/path when create a container, I
will always need to remove the files explictly on the docker server when the container stopped?
> 
> Greg Mann wrote:
>     Guangya, yes you have to remove these volumes manually. Even if the directory /host/path
does not exist prior to running the container, Docker does not remove volumes mounted in that
way, and I don't believe Mesos removes such volumes either. This is perhaps another feature
that we should add into the Docker containerizer: when attaching a volume of the form `-v
/host/path:/container/path`, Mesos could check to see if that directory exists already; if
it doesn't, then it could be removed along with the container after the task is complete.

Thanks Greg, +1 on using -v as default.


- Guangya


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/38910/#review101192
-----------------------------------------------------------


On 九月 30, 2015, 11:51 p.m., Greg Mann wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/38910/
> -----------------------------------------------------------
> 
> (Updated 九月 30, 2015, 11:51 p.m.)
> 
> 
> Review request for mesos, Gilbert Song, Jojy Varghese, and Timothy Chen.
> 
> 
> Bugs: MESOS-2613
>     https://issues.apache.org/jira/browse/MESOS-2613
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> Added `-v` flag to `docker rm`.
> 
> 
> Diffs
> -----
> 
>   src/docker/docker.cpp afcedf1f1a309bd0626c33ee25694ac1b43bdec7 
> 
> Diff: https://reviews.apache.org/r/38910/diff/
> 
> 
> Testing
> -------
> 
> `make check`
> 
> DockerContainerizerTest.ROOT_DOCKER_Launch_Executor fails on my Ubuntu 14.04 VM, but
this is a known issue: MESOS-3123
> 
> 
> Thanks,
> 
> Greg Mann
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message