moby/man
Dan Walsh 1716d497a4 Relabel BTRFS Content on container Creation
This change will allow us to run SELinux in a container with
BTRFS back end.  We continue to work on fixing the kernel/BTRFS
but this change will allow SELinux Security separation on BTRFS.

It basically relabels the content on container creation.

Just relabling -init directory in BTRFS use case. Everything looks like it
works. I don't believe tar/achive stores the SELinux labels, so we are good
as far as docker commit.

Tested Speed on startup with BTRFS on top of loopback directory. BTRFS
not on loopback should get even better perfomance on startup time.  The
more inodes inside of the container image will increase the relabel time.

This patch will give people who care more about security the option of
runnin BTRFS with SELinux.  Those who don't want to take the slow down
can disable SELinux either in individual containers or for all containers
by continuing to disable SELinux in the daemon.

Without relabel:

> time docker run --security-opt label:disable fedora echo test
test

real    0m0.918s
user    0m0.009s
sys    0m0.026s

With Relabel

test

real    0m1.942s
user    0m0.007s
sys    0m0.030s

Signed-off-by: Dan Walsh <dwalsh@redhat.com>

Signed-off-by: Dan Walsh <dwalsh@redhat.com>
2015-11-11 14:49:27 -05:00
..
docker-attach.1.md First pass at consolidating 2015-11-02 21:14:55 -08:00
docker-build.1.md Add ability to add multiple tags with docker build 2015-10-24 00:59:56 +08:00
docker-commit.1.md Fix man and commandline docs 2015-10-04 21:22:27 +02:00
docker-cp.1.md Fix man pages 2015-11-10 09:33:55 +08:00
docker-create.1.md Fix man pages 2015-11-10 09:33:55 +08:00
docker-daemon.8.md Relabel BTRFS Content on container Creation 2015-11-11 14:49:27 -05:00
docker-diff.1.md Moving man pages out of docs 2015-06-10 13:43:35 -07:00
docker-events.1.md Sync with remote API 2015-10-09 13:53:51 +02:00
docker-exec.1.md Updated test to check for exec --privileged side-effects 2015-08-13 16:37:20 +10:00
docker-export.1.md various man page typos 2015-10-13 11:52:14 -04:00
docker-history.1.md add -H to SYNOPSIS man-history 2015-08-19 09:35:52 -04:00
docker-images.1.md Fix #8048 : make docker images repository:tag work 2015-08-13 08:50:09 +02:00
docker-import.1.md various man page typos 2015-10-13 11:52:14 -04:00
docker-info.1.md use Server Version 2015-10-14 17:46:59 -07:00
docker-inspect.1.md Fix man pages 2015-11-10 09:33:55 +08:00
docker-kill.1.md Fix man pages 2015-11-10 09:33:55 +08:00
docker-load.1.md Carry man page for 14637 2015-07-24 13:39:29 -07:00
docker-login.1.md update reference to config file 2015-07-10 18:55:47 +00:00
docker-logout.1.md Unify docker commands' usage in man and help 2015-07-02 10:33:26 +08:00
docker-logs.1.md Fix man pages 2015-11-10 09:33:55 +08:00
docker-network-connect.1.md Fix man pages 2015-11-10 09:33:55 +08:00
docker-network-create.1.md Fix man pages 2015-11-10 09:33:55 +08:00
docker-network-disconnect.1.md Fix man pages 2015-11-10 09:33:55 +08:00
docker-network-inspect.1.md Fix man pages 2015-11-10 09:33:55 +08:00
docker-network-ls.1.md Fix man pages 2015-11-10 09:33:55 +08:00
docker-network-rm.1.md Fix man pages 2015-11-10 09:33:55 +08:00
docker-pause.1.md Moving man pages out of docs 2015-06-10 13:43:35 -07:00
docker-port.1.md Moving man pages out of docs 2015-06-10 13:43:35 -07:00
docker-ps.1.md Fix man pages 2015-11-10 09:33:55 +08:00
docker-pull.1.md correct man docker-pull 2015-09-04 16:34:40 -04:00
docker-push.1.md Modify man pages for image-naming 2015-07-13 15:49:41 -04:00
docker-rename.1.md various man page typos 2015-10-13 11:52:14 -04:00
docker-restart.1.md Fix man pages 2015-11-10 09:33:55 +08:00
docker-rm.1.md various man page typos 2015-10-13 11:52:14 -04:00
docker-rmi.1.md Robert P.J. Day found this problems in man pages 2015-07-13 08:59:03 -04:00
docker-run.1.md Fix man pages 2015-11-10 09:33:55 +08:00
docker-save.1.md Moving man pages out of docs 2015-06-10 13:43:35 -07:00
docker-search.1.md Fix man pages 2015-11-10 09:33:55 +08:00
docker-start.1.md Fix man and commandline docs 2015-10-04 21:22:27 +02:00
docker-stats.1.md Fix man pages 2015-11-10 09:33:55 +08:00
docker-stop.1.md Fix man pages 2015-11-10 09:33:55 +08:00
docker-tag.1.md man docker-tag minor fixup 2015-09-04 10:10:03 -04:00
docker-top.1.md Unify docker commands' usage in man and help 2015-07-02 10:33:26 +08:00
docker-unpause.1.md Moving man pages out of docs 2015-06-10 13:43:35 -07:00
docker-version.1.md add --format flag to docker version 2015-07-13 19:10:56 -04:00
docker-volume-create.1.md Fix man pages 2015-11-10 09:33:55 +08:00
docker-volume-inspect.1.md update docker volume man pages 2015-09-09 19:16:39 +02:00
docker-volume-ls.1.md Fix man pages 2015-11-10 09:33:55 +08:00
docker-volume-rm.1.md update docker volume man pages 2015-09-09 19:16:39 +02:00
docker-wait.1.md Moving man pages out of docs 2015-06-10 13:43:35 -07:00
docker.1.md Fix man pages 2015-11-10 09:33:55 +08:00
Dockerfile Bump go-md2man to 1.0.3 2015-07-21 10:42:02 -04:00
Dockerfile.5.md updating docs for EXPOSE option on run command; fixes #16634 2015-10-13 10:43:27 -05:00
md2man-all.sh Moving man pages out of docs 2015-06-10 13:43:35 -07:00
README.md updates to readme documents for manual page 2015-09-15 12:08:02 -05:00

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