1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00
moby--moby/daemon
Alexander Larsson 453552c838 Add overlayfs graph backend
This backend uses the overlayfs union filesystem for containers
plus hard link file sharing for images.

Each container/image can have a "root" subdirectory which is a plain
filesystem hierarchy, or they can use overlayfs.

If they use overlayfs there is a "upper" directory and a "lower-id"
file, as well as "merged" and "work" directories. The "upper"
directory has the upper layer of the overlay, and "lower-id" contains
the id of the parent whose "root" directory shall be used as the lower
layer in the overlay. The overlay itself is mounted in the "merged"
directory, and the "work" dir is needed for overlayfs to work.

When a overlay layer is created there are two cases, either the
parent has a "root" dir, then we start out with a empty "upper"
directory overlaid on the parents root. This is typically the
case with the init layer of a container which is based on an image.
If there is no "root" in the parent, we inherit the lower-id from
the parent and start by making a copy if the parents "upper" dir.
This is typically the case for a container layer which copies
its parent -init upper layer.

Additionally we also have a custom implementation of ApplyLayer
which makes a recursive copy of the parent "root" layer using
hardlinks to share file data, and then applies the layer on top
of that. This means all chile images share file (but not directory)
data with the parent.

Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com> (github: alexlarsson)
2014-10-28 11:31:30 +01:00
..
execdriver Mass gofmt 2014-10-24 15:11:48 -07:00
graphdriver Add overlayfs graph backend 2014-10-28 11:31:30 +01:00
networkdriver Mass gofmt 2014-10-24 15:11:48 -07:00
attach.go Mass gofmt 2014-10-24 15:11:48 -07:00
changes.go Move "changes" to daemon/changes.go 2014-08-01 14:24:46 -04:00
commit.go Move "commit" to daemon/commit.go 2014-08-01 14:17:24 -04:00
config.go Merge pull request #6101 from LK4D4/ip_range_#4986 2014-09-22 17:09:16 +03:00
container.go Mass gofmt 2014-10-24 15:11:48 -07:00
container_unit_test.go Ensure container names start with a-zA-Z0-9 2014-09-12 10:45:07 -07:00
copy.go Move "copy" to daemon/copy.go 2014-08-01 14:24:41 -04:00
create.go Disable stable IPs. 2014-10-09 15:15:17 -07:00
daemon.go Use logrus everywhere for logging 2014-10-24 15:03:06 -07:00
daemon_aufs.go Mass gofmt 2014-10-24 15:11:48 -07:00
daemon_btrfs.go update go import path and libcontainer 2014-07-24 22:19:50 +00:00
daemon_devicemapper.go update go import path and libcontainer 2014-07-24 22:19:50 +00:00
daemon_no_aufs.go update go import path and libcontainer 2014-07-24 22:19:50 +00:00
daemon_overlayfs.go Add overlayfs graph backend 2014-10-28 11:31:30 +01:00
daemon_unit_test.go update tests 2014-09-30 19:10:03 +00:00
delete.go Mass gofmt 2014-10-24 15:11:48 -07:00
exec.go Mass gofmt 2014-10-24 15:11:48 -07:00
export.go Separate events subsystem 2014-08-06 10:08:19 +00:00
history.go don't call sort for every add in history 2014-05-14 15:02:02 +03:00
image_delete.go Removing an image that fails, also removes the image name/tag. 2014-09-11 11:29:25 -07:00
info.go Mass gofmt 2014-10-24 15:11:48 -07:00
inspect.go Proper JSON handling of strings that could be represented as other types 2014-09-16 13:51:02 -04:00
kill.go Separate events subsystem 2014-08-06 10:08:19 +00:00
list.go Adding capability to filter by name, id or status to list containers api 2014-10-20 18:33:20 +00:00
logs.go Mass gofmt 2014-10-24 15:11:48 -07:00
MAINTAINERS Add maintainers to daemon/ and graph/ 2014-08-06 10:29:15 +00:00
monitor.go Mass gofmt 2014-10-24 15:11:48 -07:00
network_settings.go Support for consistent MAC address. 2014-10-03 13:22:38 -07:00
pause.go Separate events subsystem 2014-08-06 10:08:19 +00:00
README.md Add readme for daemon directory 2014-05-17 17:56:02 +00:00
resize.go Splitting the exec remote API into two separate APIs inorder to support resizing of tty sessions. 2014-09-15 22:56:47 +00:00
restart.go Separate events subsystem 2014-08-06 10:08:19 +00:00
start.go API: Provide the HostConfig during "run". 2014-09-25 15:24:38 -07:00
state.go save start error into State.Error 2014-10-22 22:42:37 -04:00
state_test.go Fix go vet warnings 2014-08-13 11:37:30 +04:00
stop.go Use State as embedded to Container 2014-09-03 00:01:11 +04:00
top.go Use State as embedded to Container 2014-09-03 00:01:11 +04:00
utils.go Strongly type exec driver context 2014-09-29 22:40:26 +00:00
utils_linux.go --selinux-enabled flag should be ignored on Disabled SELinux systems 2014-09-23 13:21:25 -04:00
utils_nolinux.go --selinux-enabled flag should be ignored on Disabled SELinux systems 2014-09-23 13:21:25 -04:00
utils_test.go Strongly type exec driver context 2014-09-29 22:40:26 +00:00
volumes.go Mass gofmt 2014-10-24 15:11:48 -07:00
wait.go Fix container wait error message to match server template for returning 404 2014-09-19 13:33:00 -04:00

This directory contains code pertaining to running containers and storing images

Code pertaining to running containers:

  • execdriver
  • networkdriver

Code pertaining to storing images:

  • graphdriver