|
...
|
...
|
@@ -7,20 +7,25 @@
|
|
7
|
7
|
Kernel Requirements
|
|
8
|
8
|
===================
|
|
9
|
9
|
|
|
|
10
|
+In short, Docker has the following kernel requirements:
|
|
|
11
|
+
|
|
|
12
|
+- Linux version 3.8 or above.
|
|
|
13
|
+
|
|
|
14
|
+- Compiled with `AUFS support <http://aufs.sourceforge.net/>`_.
|
|
|
15
|
+
|
|
|
16
|
+- Cgroups and namespaces must be enabled.
|
|
|
17
|
+
|
|
|
18
|
+
|
|
10
|
19
|
The officially supported kernel is the one recommended by the
|
|
11
|
20
|
:ref:`ubuntu_linux` installation path. It is the one that most developers
|
|
12
|
21
|
will use, and the one that receives the most attention from the core
|
|
13
|
22
|
contributors. If you decide to go with a different kernel and hit a bug,
|
|
14
|
23
|
please try to reproduce it with the official kernels first.
|
|
15
|
24
|
|
|
16
|
|
-If for some reason you cannot or do not want to use the "official" kernels,
|
|
|
25
|
+If you cannot or do not want to use the "official" kernels,
|
|
17
|
26
|
here is some technical background about the features (both optional and
|
|
18
|
27
|
mandatory) that docker needs to run successfully.
|
|
19
|
28
|
|
|
20
|
|
-In short, you need kernel version 3.8 (or above), compiled to include
|
|
21
|
|
-`AUFS support <http://aufs.sourceforge.net/>`_. Of course, you need to
|
|
22
|
|
-enable cgroups and namespaces.
|
|
23
|
|
-
|
|
24
|
29
|
|
|
25
|
30
|
Namespaces and Cgroups
|
|
26
|
31
|
----------------------
|
|
...
|
...
|
@@ -38,30 +43,11 @@ Kernels 2.6.38, and every version since 3.2, have been deployed successfully
|
|
38
|
38
|
to run containerized production workloads. Feature-wise, there is no huge
|
|
39
|
39
|
improvement between 2.6.38 and up to 3.6 (as far as docker is concerned!).
|
|
40
|
40
|
|
|
41
|
|
-Starting with version 3.7, the kernel has basic support for
|
|
42
|
|
-`Checkpoint/Restore In Userspace <http://criu.org/>`_, which is not used by
|
|
43
|
|
-docker at this point, but allows to suspend the state of a container to
|
|
44
|
|
-disk and resume it later.
|
|
45
|
|
-
|
|
46
|
|
-Version 3.8 provides improvements in stability, which are deemed necessary
|
|
47
|
|
-for the operation of docker. Versions 3.2 to 3.5 have been shown to
|
|
48
|
|
-exhibit a reproducible bug (for more details, see issue
|
|
49
|
|
-`#407 <https://github.com/dotcloud/docker/issues/407>`_).
|
|
50
|
|
-
|
|
51
|
|
-Version 3.8 also brings better support for the
|
|
52
|
|
-`setns() syscall <http://lwn.net/Articles/531381/>`_ -- but this should not
|
|
53
|
|
-be a concern since docker does not leverage on this feature for now.
|
|
54
|
|
-
|
|
55
|
|
-If you want a technical overview about those concepts, you might
|
|
56
|
|
-want to check those articles on dotCloud's blog:
|
|
57
|
|
-`about namespaces <http://blog.dotcloud.com/under-the-hood-linux-kernels-on-dotcloud-part>`_
|
|
58
|
|
-and `about cgroups <http://blog.dotcloud.com/kernel-secrets-from-the-paas-garage-part-24-c>`_.
|
|
59
|
|
-
|
|
60
|
41
|
|
|
61
|
42
|
Important Note About Pre-3.8 Kernels
|
|
62
|
43
|
------------------------------------
|
|
63
|
44
|
|
|
64
|
|
-As mentioned above, kernels before 3.8 are not stable when used with docker.
|
|
|
45
|
+Kernel versions 3.2 to 3.5 are not stable when used with docker.
|
|
65
|
46
|
In some circumstances, you will experience kernel "oopses", or even crashes.
|
|
66
|
47
|
The symptoms include:
|
|
67
|
48
|
|
|
...
|
...
|
@@ -126,28 +112,3 @@ distributions, is not part of the standard kernel. This means that if
|
|
126
|
126
|
you decide to roll your own kernel, you will have to patch your
|
|
127
|
127
|
kernel tree to add AUFS. The process is documented on
|
|
128
|
128
|
`AUFS webpage <http://aufs.sourceforge.net/>`_.
|
|
129
|
|
-
|
|
130
|
|
-Note: the AUFS patch is fairly intrusive, but for the record, people have
|
|
131
|
|
-successfully applied GRSEC and AUFS together, to obtain hardened production
|
|
132
|
|
-kernels.
|
|
133
|
|
-
|
|
134
|
|
-If you want more information about that topic, there is an
|
|
135
|
|
-`article about AUFS on dotCloud's blog
|
|
136
|
|
-<http://blog.dotcloud.com/kernel-secrets-from-the-paas-garage-part-34-a>`_.
|
|
137
|
|
-
|
|
138
|
|
-
|
|
139
|
|
-BTRFS, ZFS, OverlayFS...
|
|
140
|
|
-
|
|
141
|
|
-There is ongoing development on docker, to implement support for
|
|
142
|
|
-`BTRFS <http://en.wikipedia.org/wiki/Btrfs>`_
|
|
143
|
|
-(see github issue `#443 <https://github.com/dotcloud/docker/issues/443>`_).
|
|
144
|
|
-
|
|
145
|
|
-People have also showed interest for `ZFS <http://en.wikipedia.org/wiki/ZFS>`_
|
|
146
|
|
-(using e.g. `ZFS-on-Linux <http://zfsonlinux.org/>`_) and OverlayFS.
|
|
147
|
|
-The latter is functionally close to AUFS, and it might end up being included
|
|
148
|
|
-in the stock kernel; so it's a strong candidate!
|
|
149
|
|
-
|
|
150
|
|
-Would you like to `contribute
|
|
151
|
|
-<https://github.com/dotcloud/docker/blob/master/CONTRIBUTING.md>`_
|
|
152
|
|
-support for your favorite filesystem?
|