~ubuntu-branches/ubuntu/quantal/lxc/quantal-201205292108

« back to all changes in this revision

Viewing changes to doc/lxc.conf.5

  • Committer: Bazaar Package Importer
  • Author(s): Guido Trotter
  • Date: 2010-01-10 10:40:21 UTC
  • mto: (1.1.2 upstream) (3.1.2 sid)
  • mto: This revision was merged to the branch mainline in revision 5.
  • Revision ID: james.westby@ubuntu.com-20100110104021-ff3ukvpu7yzc36hm
ImportĀ upstreamĀ versionĀ 0.6.4

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
.\" This manpage has been automatically generated by docbook2man 
 
2
.\" from a DocBook document.  This tool can be found at:
 
3
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/> 
 
4
.\" Please send any bug reports, improvements, comments, patches, 
 
5
.\" etc. to Steve Cheng <steve@ggi-project.org>.
 
6
.TH "LXC.CONF" "5" "23 November 2009" "" ""
 
7
 
 
8
.SH NAME
 
9
lxc.conf \- linux container configuration file
 
10
.SH "DESCRIPTION"
 
11
.PP
 
12
The linux containers (\fBlxc\fR) are always created
 
13
before being used. This creation defines a set of system
 
14
resources to be virtualized / isolated when a process is using
 
15
the container. By default, the pids, sysv ipc and mount points
 
16
are virtualized and isolated. The other system resources are
 
17
shared across containers, until they are explicitly defined in
 
18
the configuration file. For example, if there is no network
 
19
configuration, the network will be shared between the creator of
 
20
the container and the container itself, but if the network is
 
21
specified, a new network stack is created for the container and
 
22
the container can no longer use the network of its ancestor.
 
23
.PP
 
24
The configuration file defines the different system resources to
 
25
be assigned for the container. At present, the utsname, the
 
26
network, the mount points, the root file system and the control
 
27
groups are supported.
 
28
.PP
 
29
Each option in the configuration file has the form \fBkey
 
30
= value\fR fitting in one line. The '#' caracter means
 
31
the line is a comment.
 
32
.SS "HOSTNAME"
 
33
.PP
 
34
The utsname section defines the hostname to be set for the
 
35
container. That means the container can set its own hostname
 
36
without changing the one from the system. That makes the
 
37
hostname private for the container.
 
38
.TP
 
39
\fB     lxc.utsname \fR
 
40
specify the hostname for the container
 
41
.SS "NETWORK"
 
42
.PP
 
43
The network section defines how the network is virtualized in
 
44
the container. The network virtualization acts at the layer
 
45
two, so in order to use the network, a few information should
 
46
be specified to define the network interfaces to be used by
 
47
the container. Several virtual interfaces can be assigned and
 
48
used in a container either if the system has only one physical
 
49
network interface.
 
50
.TP
 
51
\fB     lxc.network.type \fR
 
52
specify what kind of network virtualization to be used
 
53
for the container. Each time
 
54
a \fBlxc.network.type\fR field is found a new
 
55
round of network configuration begins. By this way
 
56
several network virtualization can be specified for the
 
57
same container, as well as assigning several network
 
58
interfaces for one container. The different
 
59
virtualization types can be:
 
60
 
 
61
\fBempty:\fR a new network stack is created
 
62
for the container, but it will not contain any network
 
63
interface.
 
64
 
 
65
\fBveth:\fR a new network stack is created, a
 
66
peer network device is created with one side assigned to
 
67
the container and the other side attached to a bridge
 
68
specified by the \fBlxc.network.link\fR\&. The
 
69
bridge has to be setup before on the
 
70
system, \fBlxc\fR won't handle
 
71
configuration outside of the container.
 
72
 
 
73
\fBmacvlan:\fR a new network stack is
 
74
created, a macvlan interface is linked with the
 
75
interface specified by
 
76
the \fBlxc.network.link\fR and assigned to
 
77
the container.
 
78
 
 
79
\fBphys:\fR a new network stack is created
 
80
and the interface specified by
 
81
the \fBlxc.network.link\fR is assigned to the
 
82
container.
 
83
.TP
 
84
\fB     lxc.network.flags \fR
 
85
specify an action to do for the
 
86
network.
 
87
 
 
88
\fBup:\fR activates the interface.
 
89
.TP
 
90
\fB     lxc.network.link \fR
 
91
specify the interface to be used for real network
 
92
traffic.
 
93
.TP
 
94
\fB     lxc.network.name \fR
 
95
the interface name is dynamically allocated, but if an
 
96
other name is needed because the configuration files
 
97
being used by the container use a generic name,
 
98
eg. eth0, this option will rename the interface in the
 
99
container.
 
100
.TP
 
101
\fB     lxc.network.hwaddr \fR
 
102
the interface mac address is dynamically allocated by
 
103
default to the virtual interface, but in some case, this
 
104
is needed to resolve a mac address conflict or to have
 
105
always the same link-locak ipv6 address.
 
106
.TP
 
107
\fB     lxc.network.ipv4 \fR
 
108
specify the ipv4 address to assign to the virtualized
 
109
interface. Several lines specify several ipv4 addresses.
 
110
The address is in format x.y.z.t/m,
 
111
eg. 192.168.1.123/24.
 
112
.TP
 
113
\fB     lxc.network.ipv6 \fR
 
114
specify the ipv6 address to assign to the virtualized
 
115
interface. Several lines specify several ipv6 addresses.
 
116
The address is in format x::y/m,
 
117
eg. 2003:db8:1:0:214:1234:fe0b:3596/64
 
118
.SS "NEW PSEUDO TTY INSTANCE (DEVPTS)"
 
119
.PP
 
120
For stricter isolation the container can have its own private
 
121
instance of the pseudo tty.
 
122
.TP
 
123
\fB     lxc.pts \fR
 
124
If set, the container will have a new pseudo tty
 
125
instance, making this private to it. The value specifies
 
126
the maximum number of pseudo ttys allowed for a pts
 
127
instance (this limitation is not implemented yet).
 
128
.SS "CONSOLE THROUGH THE TTYS"
 
129
.PP
 
130
If the container is configured with a root filesystem and the
 
131
inittab file is setup to launch a getty on the ttys. This
 
132
option will specify the number of ttys to be available for the
 
133
container. The number of getty in the inittab file of the
 
134
container and the number of tty specified in this
 
135
configuration file should be equal, otherwise the getty will
 
136
die and respawn indefinitly giving annoying messages on the
 
137
console.
 
138
.TP
 
139
\fB     lxc.tty \fR
 
140
Specify the number of tty to make available to the
 
141
container.
 
142
.SS "MOUNT POINTS"
 
143
.PP
 
144
The mount points section specifies the different places to be
 
145
mounted. These mount points will be private to the container
 
146
and won't be visible by the processes running outside of the
 
147
container. This is useful to mount /etc, /var or /home for
 
148
examples.
 
149
.TP
 
150
\fB     lxc.mount \fR
 
151
specify a file location in
 
152
the \fIfstab\fR format, containing the
 
153
mount informations.
 
154
.TP
 
155
\fB     lxc.mount.entry \fR
 
156
specify a mount point corresponding to a line in the
 
157
fstab format.
 
158
.SS "ROOT FILE SYSTEM"
 
159
.PP
 
160
The root file system is the location where the container will
 
161
chroot.
 
162
.TP
 
163
\fB     lxc.rootfs \fR
 
164
specify a file location containing the new file tree for
 
165
a root file system.
 
166
.SS "CONTROL GROUP"
 
167
.PP
 
168
The control group section contains the configuration for the
 
169
different subsystem. \fBlxc\fR does not check the
 
170
correctness of the subsystem name. This has the inconvenient
 
171
to have the error being detected at runtime, but the advantage
 
172
to support any future subsystem.
 
173
.TP
 
174
\fB     lxc.cgroup.[subsystem name] \fR
 
175
specify the control group value to be set. This field is
 
176
the identifier to tell the following keyword is the
 
177
literal name of the control group subsystem,
 
178
eg. \fBlxc.cgroup.cpuset.cpus\fR
 
179
.SH "EXAMPLES"
 
180
.SS "NETWORK"
 
181
.PP
 
182
This configuration sets up a container to use a veth pair
 
183
device with one side plugged to a bridge br0 (which has been
 
184
configured before on the system by the administrator). The
 
185
virtual network device visible in the container is renamed to
 
186
eth0.
 
187
.TP
 
188
\fBlxc.utsname = myhostname\fR
 
189
.TP
 
190
\fBlxc.network.type = veth\fR
 
191
.TP
 
192
\fBlxc.network.flags = up\fR
 
193
.TP
 
194
\fBlxc.network.link = br0\fR
 
195
.TP
 
196
\fBlxc.network.name = eth0\fR
 
197
.TP
 
198
\fBlxc.network.hwaddr = 4a:49:43:49:79:bf\fR
 
199
.TP
 
200
\fBlxc.network.ipv4 = 1.2.3.5/24\fR
 
201
.TP
 
202
\fBlxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3597\fR
 
203
.SS "CONTROL GROUP"
 
204
.PP
 
205
This configuration will setup several control groups for
 
206
the application, cpuset.cpus restricts usage of the defined cpu,
 
207
cpus.share prioritize the control group, devices.allow makes
 
208
usable the specified devices.
 
209
.TP
 
210
\fBlxc.cgroup.cpuset.cpus = 0,1\fR
 
211
.TP
 
212
\fBlxc.cgroup.cpu.shares = 1234\fR
 
213
.TP
 
214
\fBlxc.cgroup.devices.deny = a\fR
 
215
.TP
 
216
\fBlxc.cgroup.devices.allow = c 1:3 rw\fR
 
217
.TP
 
218
\fBlxc.cgroup.devices.allow = b 8:0 rw\fR
 
219
.SS "COMPLEX CONFIGURATION"
 
220
.PP
 
221
This example show a complex configuration making a complex
 
222
network stack, using the control groups, setting a new hostname,
 
223
mounting some locations and a changing the root file
 
224
system.
 
225
.TP
 
226
\fBlxc.utsname = complex\fR
 
227
.TP
 
228
\fBlxc.network.type = veth\fR
 
229
.TP
 
230
\fBlxc.network.flags = up\fR
 
231
.TP
 
232
\fBlxc.network.link = br0\fR
 
233
.TP
 
234
\fBlxc.network.hwaddr = 4a:49:43:49:79:bf\fR
 
235
.TP
 
236
\fBlxc.network.ipv4 = 1.2.3.5/24\fR
 
237
.TP
 
238
\fBlxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3597\fR
 
239
.TP
 
240
\fBlxc.network.ipv6 = 2003:db8:1:0:214:5432:feab:3588\fR
 
241
.TP
 
242
\fBlxc.network.type = macvlan\fR
 
243
.TP
 
244
\fBlxc.network.flags = up\fR
 
245
.TP
 
246
\fBlxc.network.link = eth0\fR
 
247
.TP
 
248
\fBlxc.network.hwaddr = 4a:49:43:49:79:bd\fR
 
249
.TP
 
250
\fBlxc.network.ipv4 = 1.2.3.4/24\fR
 
251
.TP
 
252
\fBlxc.network.ipv4 = 192.168.10.125/24\fR
 
253
.TP
 
254
\fBlxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3596\fR
 
255
.TP
 
256
\fBlxc.network.type = phys\fR
 
257
.TP
 
258
\fBlxc.network.flags = up\fR
 
259
.TP
 
260
\fBlxc.network.link = dummy0\fR
 
261
.TP
 
262
\fBlxc.network.hwaddr = 4a:49:43:49:79:ff\fR
 
263
.TP
 
264
\fBlxc.network.ipv4 = 1.2.3.6/24\fR
 
265
.TP
 
266
\fBlxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3297\fR
 
267
.TP
 
268
\fBlxc.cgroup.cpuset.cpus = 0,1\fR
 
269
.TP
 
270
\fBlxc.cgroup.cpu.shares = 1234\fR
 
271
.TP
 
272
\fBlxc.cgroup.devices.deny = a\fR
 
273
.TP
 
274
\fBlxc.cgroup.devices.allow = c 1:3 rw\fR
 
275
.TP
 
276
\fBlxc.cgroup.devices.allow = b 8:0 rw\fR
 
277
.TP
 
278
\fBlxc.mount = /etc/fstab.complex\fR
 
279
.TP
 
280
\fBlxc.mount.entry = /lib /root/myrootfs/lib none ro,bind 0 0\fR
 
281
.TP
 
282
\fBlxc.rootfs = /mnt/rootfs.complex\fR
 
283
.SH "SEE ALSO"
 
284
.PP
 
285
\fBchroot\fR(1),
 
286
\fBpivot_root\fR(8),
 
287
\fB\fIfstab\fB\fR(5)
 
288
.SH "SEE ALSO"
 
289
.PP
 
290
\fBlxc\fR(1),
 
291
\fBlxc-create\fR(1),
 
292
\fBlxc-destroy\fR(1),
 
293
\fBlxc-start\fR(1),
 
294
\fBlxc-stop\fR(1),
 
295
\fBlxc-execute\fR(1),
 
296
\fBlxc-console\fR(1),
 
297
\fBlxc-monitor\fR(1),
 
298
\fBlxc-wait\fR(1),
 
299
\fBlxc-cgroup\fR(1),
 
300
\fBlxc-ls\fR(1),
 
301
\fBlxc-ps\fR(1),
 
302
\fBlxc-info\fR(1),
 
303
\fBlxc-freeze\fR(1),
 
304
\fBlxc-unfreeze\fR(1),
 
305
\fBlxc.conf\fR(5)
 
306
.SH "AUTHOR"
 
307
.PP
 
308
Daniel Lezcano <daniel.lezcano@free.fr>