Once thin pool gets full, bad things can happen. Especially in case of xfs it is possible that xfs keeps on retrying IO infinitely (for certain kind of IO) and container hangs. One way to mitigate the problem is that once thin pool is about to get full, start failing some of the docker operations like pulling new images or creation of new containers. That way user will get warning ahead of time and can try to rectify it by creating more free space in thin pool. This can be done either by deleting existing images/containers or by adding more free space to thin pool. This patch adds a new option dm.min_free_space to devicemapper graph driver. Say one specifies dm.min_free_space=10%. This means atleast 10% of data and metadata blocks should be free in pool before new device creation is allowed, otherwise operation will fail. By default min_free_space is 10%. User can change it by specifying dm.min_free_space=X% on command line. A value of 0% will disable the check. Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
Docker Documentation
This directory contains the Docker user manual in the Markdown format. Do not edit the man pages in the man1 directory. Instead, amend the Markdown (*.md) files.
Generating man pages from the Markdown files
The recommended approach for generating the man pages is via a Docker
container using the supplied Dockerfile to create an image with the correct
environment. This uses go-md2man, a pure Go Markdown to man page generator.
Building the md2man image
There is a Dockerfile provided in the /man directory of your
'docker/docker' fork.
Using this Dockerfile, create a Docker image tagged docker/md2man:
docker build -t docker/md2man .
Utilizing the image
From within the /man directory run the following command:
docker run -v $(pwd):/man -w /man -i docker/md2man ./md2man-all.sh
The md2man Docker container will process the Markdown files and generate
the man pages inside the /man/man1 directory of your fork using
Docker volumes. For more information on Docker volumes see the man page for
docker run and also look at the article [Sharing Directories via Volumes]
(https://docs.docker.com/use/working_with_volumes/).