> On Oct. 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!

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/`.


- Greg


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


On Sept. 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 Sept. 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
> 
>

Reply via email to