On systems that supports reflinking (i.e. btrfs) this means the dummy
backend is much faster at copying files and will be sharing file data in
a CoW fashion.
On my (btrfs) system this makes "docker run ubuntu echo hello world" go
from about 3 seconds to about 1 second. Not instant, but clearly better.
cp --reflink=auto is availible since coreutils 7.5 (around 2009), so this
seems pretty ok to rely on.
cp is also better at preserving file metadata than tar, so for instance
it will copy xattrs.
Upstream-commit: 242fd4b3ef32b5a20135d6031040bcf099b5df4e
Component: engine
This change makes docker compute container size correctly.
The old code isn't taking hard links into account. Containers could
seem like they're up to 1-1.5x larger than they really were.
Upstream-commit: 78c843c8eff64da5e12725bdb111b18e51d82606
Component: engine
This change makes docker compute layer size correctly.
The old code isn't taking hard links into account. Layers could
seem like they're up to 1-1.5x larger than they really were.
Upstream-commit: ac821f2446628a9151587038f1d377f57985a452
Component: engine
This moves Driver.Size() to Differ.DiffSize(), removing the empty
implementations in devmapper and dummy, and renaming the one in aufs.
Then we fall back to a container.Changes() implementation in the non-aufs
case.
Upstream-commit: 5d76681c3d0cbb744205a397420603ce029ce754
Component: engine
We need to do this because we still support aufs
and users on other drivers can push incompat images
to the registory that aufs users cannot use.
Upstream-commit: af753cbad8957f8c51852fdc26a25a8e43114938
Component: engine
This makes the device mapper tool work again and adds new features
to get pool status, device status and to list all devices.
Upstream-commit: 80aecc70141f3e7b3138752bf3f0c33b9a273714
Component: engine
We place the actual image/containers in the "rootfs" directory, which
allows us to have other data in the toplevel directory in the mount.
For starters, this means the "lost+found" directory from mkfs will
not always be in your container/image.
Secondly, we can create a file "id" in the toplevel dir which is not
visible from the container. This is useful because it allows us to map
back from the device fs to the container if something goes wrong with
the devicemapper metadata.
Upstream-commit: 00401a30b73d897255b7b99996d7c6a53fe2d4af
Component: engine
This will try to move the directories that were
previously symlinked until a full migration is complete.
Upstream-commit: 5ee8e41e43892694f66b4d6d01ed95f4ca2e7cb6
Component: engine
add an example of what to expect from docker diff, and what the 3 codes mean
Upstream-commit: b5934711d06331d911447d87146ec539da397a77
Component: engine
This is the proposed fix for #2506. It provides a more complete message
with regards to name collisions including informing of the opposing
containers ID.
I have included a test to ensure that the correct short id is displayed
to make the message easier to understand.
Upstream-commit: 3c67a2849337f3b9bd92dd389f0e02e48a36028b
Component: engine
Finish container cleanup before setting the state to stopped.
Otherwise, for an application that exits quickly, a call to Restart
can allow Start to be called again before cleanup is done, resulting in
overritten data in the Container struct.
Upstream-commit: fc2f5758cf22fe5d3d46be7e4642abc0735e2c8d
Component: engine
In the dind environment running on a Fedora host, the lxc utils get
confused by the /sys/fs/cgroup/cpuacct,cpu cgroup mount and lxc-start
fails trying to access the wrong cgroup directory.
Upstream-commit: 72d02ecdde2ba6f39739a0a942f2c4a057b4d45f
Component: engine
Each arg to docker run should be placed in a separate string.
Otherwise, when starting the command via exec.Cmd, the command is
interpreted as "echo test", which can't be found.
Upstream-commit: 30ea0bebce340dfc257b5b45835234cb921f3a48
Component: engine