~ubuntu-branches/ubuntu/quantal/lxc/quantal-201208232243

« back to all changes in this revision

Viewing changes to .pc/0098-config-file-includes/doc/lxc.conf.sgml.in

  • Committer: Serge Hallyn
  • Date: 2012-08-14 19:11:24 UTC
  • Revision ID: serge.hallyn@ubuntu.com-20120814191124-g8tigwsx9pwelhof
Tags: 0.8.0~rc1-4ubuntu24
* lxc-start-ephemeral: use unionfs only for the rootfs itself
  (LP: #959352)
* allow config files to include other config files.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!-- 
 
2
 
 
3
lxc: linux Container library
 
4
 
 
5
(C) Copyright IBM Corp. 2007, 2008
 
6
 
 
7
Authors:
 
8
Daniel Lezcano <dlezcano at fr.ibm.com>
 
9
 
 
10
This library is free software; you can redistribute it and/or
 
11
modify it under the terms of the GNU Lesser General Public
 
12
License as published by the Free Software Foundation; either
 
13
version 2.1 of the License, or (at your option) any later version.
 
14
 
 
15
This library is distributed in the hope that it will be useful,
 
16
but WITHOUT ANY WARRANTY; without even the implied warranty of
 
17
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
18
Lesser General Public License for more details.
 
19
 
 
20
You should have received a copy of the GNU Lesser General Public
 
21
License along with this library; if not, write to the Free Software
 
22
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 
23
 
 
24
-->
 
25
 
 
26
<!DOCTYPE refentry PUBLIC "-//Davenport//DTD DocBook V3.0//EN" [
 
27
 
 
28
<!ENTITY seealso SYSTEM "@builddir@/see_also.sgml">
 
29
]>
 
30
 
 
31
<refentry>
 
32
 
 
33
  <docinfo><date>@LXC_GENERATE_DATE@</date></docinfo>
 
34
 
 
35
  <refmeta>
 
36
    <refentrytitle>lxc.conf</refentrytitle>
 
37
    <manvolnum>5</manvolnum>
 
38
  </refmeta>
 
39
 
 
40
  <refnamediv>
 
41
    <refname>lxc.conf</refname>
 
42
 
 
43
    <refpurpose>
 
44
      linux container configuration file
 
45
    </refpurpose>
 
46
  </refnamediv>
 
47
 
 
48
  <refsect1>
 
49
    <title>Description</title>
 
50
 
 
51
    <para>
 
52
      The linux containers (<command>lxc</command>) are always created
 
53
      before being used. This creation defines a set of system
 
54
      resources to be virtualized / isolated when a process is using
 
55
      the container. By default, the pids, sysv ipc and mount points
 
56
      are virtualized and isolated. The other system resources are
 
57
      shared across containers, until they are explicitly defined in
 
58
      the configuration file. For example, if there is no network
 
59
      configuration, the network will be shared between the creator of
 
60
      the container and the container itself, but if the network is
 
61
      specified, a new network stack is created for the container and
 
62
      the container can no longer use the network of its ancestor.
 
63
    </para>
 
64
 
 
65
    <para>
 
66
      The configuration file defines the different system resources to
 
67
      be assigned for the container. At present, the utsname, the
 
68
      network, the mount points, the root file system and the control
 
69
      groups are supported.
 
70
    </para>
 
71
 
 
72
    <para>
 
73
      Each option in the configuration file has the form <command>key
 
74
      = value</command> fitting in one line. The '#' character means
 
75
      the line is a comment.
 
76
    </para>
 
77
 
 
78
    <refsect2>
 
79
      <title>Architecture</title>
 
80
      <para>
 
81
        Allows to set the architecture for the container. For example,
 
82
        set a 32bits architecture for a container running 32bits
 
83
        binaries on a 64bits host. That fix the container scripts
 
84
        which rely on the architecture to do some work like
 
85
        downloading the packages.
 
86
      </para>
 
87
 
 
88
      <variablelist>
 
89
        <varlistentry>
 
90
          <term>
 
91
            <option>lxc.arch</option>
 
92
          </term>
 
93
          <listitem>
 
94
            <para>
 
95
              Specify the architecture for the container.
 
96
            </para>
 
97
            <para>
 
98
              Valid options are
 
99
              <option>x86</option>,
 
100
              <option>i686</option>,
 
101
              <option>x86_64</option>,
 
102
              <option>amd64</option>
 
103
            </para>
 
104
          </listitem>
 
105
        </varlistentry>
 
106
      </variablelist>
 
107
 
 
108
    </refsect2>
 
109
 
 
110
    <refsect2>
 
111
      <title>Hostname</title>
 
112
      <para>
 
113
        The utsname section defines the hostname to be set for the
 
114
        container. That means the container can set its own hostname
 
115
        without changing the one from the system. That makes the
 
116
        hostname private for the container.
 
117
      </para>
 
118
      <variablelist>
 
119
        <varlistentry>
 
120
          <term>
 
121
            <option>lxc.utsname</option>
 
122
          </term>
 
123
          <listitem>
 
124
            <para>
 
125
              specify the hostname for the container
 
126
            </para>
 
127
          </listitem>
 
128
        </varlistentry>
 
129
      </variablelist>
 
130
    </refsect2>
 
131
 
 
132
    <refsect2>
 
133
      <title>Network</title>
 
134
      <para>
 
135
        The network section defines how the network is virtualized in
 
136
        the container. The network virtualization acts at layer
 
137
        two. In order to use the network virtualization, parameters
 
138
        must be specified to define the network interfaces of the
 
139
        container. Several virtual interfaces can be assigned and used
 
140
        in a container even if the system has only one physical
 
141
        network interface.
 
142
      </para>
 
143
      <variablelist>
 
144
        <varlistentry>
 
145
          <term>
 
146
            <option>lxc.network.type</option>
 
147
          </term>
 
148
          <listitem>
 
149
            <para>
 
150
              specify what kind of network virtualization to be used
 
151
              for the container. Each time
 
152
              a <option>lxc.network.type</option> field is found a new
 
153
              round of network configuration begins. In this way,
 
154
              several network virtualization types can be specified
 
155
              for the same container, as well as assigning several
 
156
              network interfaces for one container. The different
 
157
              virtualization types can be:
 
158
            </para>
 
159
 
 
160
            <para>
 
161
              <option>empty:</option> will create only the loopback
 
162
              interface.
 
163
            </para>
 
164
 
 
165
            <para>
 
166
              <option>veth:</option> a peer network device is created
 
167
              with one side assigned to the container and the other
 
168
              side is attached to a bridge specified by
 
169
              the <option>lxc.network.link</option>. If the bridge is
 
170
              not specified, then the veth pair device will be created
 
171
              but not attached to any bridge. Otherwise, the bridge
 
172
              has to be setup before on the
 
173
              system, <command>lxc</command> won't handle any
 
174
              configuration outside of the container.  By
 
175
              default <command>lxc</command> choose a name for the
 
176
              network device belonging to the outside of the
 
177
              container, this name is handled
 
178
              by <command>lxc</command>, but if you wish to handle
 
179
              this name yourself, you can tell <command>lxc</command>
 
180
              to set a specific name with
 
181
              the <option>lxc.network.veth.pair</option> option.
 
182
            </para>
 
183
 
 
184
            <para>
 
185
              <option>vlan:</option> a vlan interface is linked with
 
186
              the interface specified by
 
187
              the <option>lxc.network.link</option> and assigned to
 
188
              the container. The vlan identifier is specified with the
 
189
              option <option>lxc.network.vlan.id</option>.
 
190
            </para>
 
191
 
 
192
            <para>
 
193
              <option>macvlan:</option> a macvlan interface is linked
 
194
              with the interface specified by
 
195
              the <option>lxc.network.link</option> and assigned to
 
196
              the container.
 
197
              <option>lxc.network.macvlan.mode</option> specifies the
 
198
              mode the macvlan will use to communicate between
 
199
              different macvlan on the same upper device. The accepted
 
200
              modes are <option>private</option>, the device never
 
201
              communicates with any other device on the same upper_dev (default),
 
202
              <option>vepa</option>, the new Virtual Ethernet Port
 
203
              Aggregator (VEPA) mode, it assumes that the adjacent
 
204
              bridge returns all frames where both source and
 
205
              destination are local to the macvlan port, i.e. the
 
206
              bridge is set up as a reflective relay.  Broadcast
 
207
              frames coming in from the upper_dev get flooded to all
 
208
              macvlan interfaces in VEPA mode, local frames are not
 
209
              delivered locallay, or <option>bridge</option>, it
 
210
              provides the behavior of a simple bridge between
 
211
              different macvlan interfaces on the same port. Frames
 
212
              from one interface to another one get delivered directly
 
213
              and are not sent out externally. Broadcast frames get
 
214
              flooded to all other bridge ports and to the external
 
215
              interface, but when they come back from a reflective
 
216
              relay, we don't deliver them again.  Since we know all
 
217
              the MAC addresses, the macvlan bridge mode does not
 
218
              require learning or STP like the bridge module does.
 
219
            </para>
 
220
 
 
221
            <para>
 
222
              <option>phys:</option> an already existing interface
 
223
              specified by the <option>lxc.network.link</option> is
 
224
              assigned to the container.
 
225
            </para>
 
226
          </listitem>
 
227
          </varlistentry>
 
228
 
 
229
        <varlistentry>
 
230
          <term>
 
231
            <option>lxc.network.flags</option>
 
232
          </term>
 
233
          <listitem>
 
234
            <para>
 
235
              specify an action to do for the
 
236
              network.
 
237
            </para>
 
238
            
 
239
            <para><option>up:</option> activates the interface.
 
240
            </para>
 
241
          </listitem>
 
242
        </varlistentry>
 
243
 
 
244
        <varlistentry>
 
245
          <term>
 
246
            <option>lxc.network.link</option>
 
247
          </term>
 
248
          <listitem>
 
249
            <para>
 
250
              specify the interface to be used for real network
 
251
              traffic.
 
252
            </para>
 
253
          </listitem>
 
254
        </varlistentry>
 
255
 
 
256
        <varlistentry>
 
257
          <term>
 
258
            <option>lxc.network.name</option>
 
259
          </term>
 
260
          <listitem>
 
261
            <para>
 
262
              the interface name is dynamically allocated, but if
 
263
              another name is needed because the configuration files
 
264
              being used by the container use a generic name,
 
265
              eg. eth0, this option will rename the interface in the
 
266
              container.
 
267
            </para>
 
268
          </listitem>
 
269
        </varlistentry>
 
270
 
 
271
        <varlistentry>
 
272
          <term>
 
273
            <option>lxc.network.hwaddr</option>
 
274
          </term>
 
275
          <listitem>
 
276
            <para>
 
277
              the interface mac address is dynamically allocated by
 
278
              default to the virtual interface, but in some cases,
 
279
              this is needed to resolve a mac address conflict or to
 
280
              always have the same link-local ipv6 address
 
281
            </para>
 
282
          </listitem>
 
283
        </varlistentry>
 
284
 
 
285
        <varlistentry>
 
286
          <term>
 
287
            <option>lxc.network.ipv4</option>
 
288
          </term>
 
289
          <listitem>
 
290
            <para>
 
291
              specify the ipv4 address to assign to the virtualized
 
292
              interface. Several lines specify several ipv4 addresses.
 
293
              The address is in format x.y.z.t/m,
 
294
              eg. 192.168.1.123/24. The broadcast address should be
 
295
              specified on the same line, right after the ipv4
 
296
              address.
 
297
            </para>
 
298
          </listitem>
 
299
        </varlistentry>
 
300
 
 
301
        <varlistentry>
 
302
          <term>
 
303
            <option>lxc.network.ipv4.gateway</option>
 
304
          </term>
 
305
          <listitem>
 
306
            <para>
 
307
              specify the ipv4 address to use as the gateway inside the
 
308
              container. The address is in format x.y.z.t, eg.
 
309
              192.168.1.123.
 
310
 
 
311
              Can also have the special value <option>auto</option>,
 
312
              which means to take the primary address from the bridge
 
313
              interface (as specified by the
 
314
              <option>lxc.network.link</option> option) and use that as
 
315
              the gateway. <option>auto</option> is only available when
 
316
              using the <option>veth</option> and
 
317
              <option>macvlan</option> network types.
 
318
            </para>
 
319
          </listitem>
 
320
        </varlistentry>
 
321
 
 
322
 
 
323
        <varlistentry>
 
324
          <term>
 
325
            <option>lxc.network.ipv6</option>
 
326
          </term>
 
327
          <listitem>
 
328
            <para>
 
329
              specify the ipv6 address to assign to the virtualized
 
330
              interface. Several lines specify several ipv6 addresses.
 
331
              The address is in format x::y/m,
 
332
              eg. 2003:db8:1:0:214:1234:fe0b:3596/64
 
333
            </para>
 
334
          </listitem>
 
335
        </varlistentry>
 
336
 
 
337
        <varlistentry>
 
338
          <term>
 
339
            <option>lxc.network.ipv6.gateway</option>
 
340
          </term>
 
341
          <listitem>
 
342
            <para>
 
343
              specify the ipv6 address to use as the gateway inside the
 
344
              container. The address is in format x::y,
 
345
              eg. 2003:db8:1:0::1
 
346
 
 
347
              Can also have the special value <option>auto</option>,
 
348
              which means to take the primary address from the bridge
 
349
              interface (as specified by the
 
350
              <option>lxc.network.link</option> option) and use that as
 
351
              the gateway. <option>auto</option> is only available when
 
352
              using the <option>veth</option> and
 
353
              <option>macvlan</option> network types.
 
354
            </para>
 
355
          </listitem>
 
356
        </varlistentry>
 
357
 
 
358
        <varlistentry>
 
359
          <term>
 
360
            <option>lxc.network.script.up</option>
 
361
          </term>
 
362
          <listitem>
 
363
            <para>
 
364
              add a configuration option to specify a script to be
 
365
              executed after creating and configuring the network used
 
366
              from the host side. The following arguments are passed
 
367
              to the script: container name and config section name
 
368
              (net) Additional arguments depend on the config section
 
369
              employing a script hook; the following are used by the
 
370
              network system: execution context (up), network type
 
371
              (empty/veth/macvlan/phys), Depending on the network
 
372
              type, other arguments may be passed:
 
373
              veth/macvlan/phys. And finally (host-sided) device name.
 
374
            </para>
 
375
          </listitem>
 
376
        </varlistentry>
 
377
      </variablelist>
 
378
    </refsect2>
 
379
 
 
380
    <refsect2>
 
381
      <title>New pseudo tty instance (devpts)</title>
 
382
      <para>
 
383
        For stricter isolation the container can have its own private
 
384
        instance of the pseudo tty.
 
385
      </para>
 
386
      <variablelist>
 
387
        <varlistentry>
 
388
          <term>
 
389
            <option>lxc.pts</option>
 
390
          </term>
 
391
          <listitem>
 
392
            <para>
 
393
              If set, the container will have a new pseudo tty
 
394
              instance, making this private to it. The value specifies
 
395
              the maximum number of pseudo ttys allowed for a pts
 
396
              instance (this limitation is not implemented yet).
 
397
            </para>
 
398
          </listitem>
 
399
        </varlistentry>
 
400
      </variablelist>
 
401
    </refsect2>
 
402
 
 
403
    <refsect2>
 
404
      <title>Container system console</title>
 
405
      <para>
 
406
        If the container is configured with a root filesystem and the
 
407
        inittab file is setup to use the console, you may want to specify
 
408
        where goes the output of this console.
 
409
      </para>
 
410
      <variablelist>
 
411
        <varlistentry>
 
412
          <term>
 
413
            <option>lxc.console</option>
 
414
          </term>
 
415
          <listitem>
 
416
            <para>
 
417
              Specify a path to a file where the console output will
 
418
              be written. The keyword 'none' will simply disable the
 
419
              console. This is dangerous once if have a rootfs with a
 
420
              console device file where the application can write, the
 
421
              messages will fall in the host.
 
422
            </para>
 
423
          </listitem>
 
424
        </varlistentry>
 
425
      </variablelist>
 
426
    </refsect2>
 
427
 
 
428
    <refsect2>
 
429
      <title>Console through the ttys</title>
 
430
      <para>
 
431
        If the container is configured with a root filesystem and the
 
432
        inittab file is setup to launch a getty on the ttys. This
 
433
        option will specify the number of ttys to be available for the
 
434
        container. The number of getty in the inittab file of the
 
435
        container should not be greater than the number of ttys
 
436
        specified in this configuration file, otherwise the excess
 
437
        getty sessions will die and respawn indefinitly giving
 
438
        annoying messages on the console.
 
439
      </para>
 
440
      <variablelist>
 
441
        <varlistentry>
 
442
          <term>
 
443
            <option>lxc.tty</option>
 
444
          </term>
 
445
          <listitem>
 
446
            <para>
 
447
              Specify the number of tty to make available to the
 
448
              container.
 
449
            </para>
 
450
          </listitem>
 
451
        </varlistentry>
 
452
      </variablelist>
 
453
    </refsect2>
 
454
 
 
455
    <refsect2>
 
456
      <title>Console devices location</title>
 
457
      <para>
 
458
        LXC consoles are provided through Unix98 PTYs created on the
 
459
        host and bind-mounted over the expected devices in the container.
 
460
        By default, they are bind-mounted over <filename>/dev/console</filename>
 
461
        and <filename>/dev/ttyN</filename>.  This can prevent package upgrades
 
462
        in the guest.  Therefore you can specify a directory location (under
 
463
        <filename>/dev</filename> under which LXC will create the files and
 
464
        bind-mount over them.  These will then be symbolically linked to
 
465
        <filename>/dev/console</filename> and <filename>/dev/ttyN</filename>.
 
466
        A package upgrade can then succeed as it is able to remove and replace
 
467
        the symbolic links.
 
468
      </para>
 
469
      <variablelist>
 
470
        <varlistentry>
 
471
          <term>
 
472
            <option>lxc.devttydir</option>
 
473
          </term>
 
474
          <listitem>
 
475
            <para>
 
476
              Specify a directory under <filename>/dev</filename>
 
477
              under which to create the container console devices.
 
478
            </para>
 
479
          </listitem>
 
480
        </varlistentry>
 
481
      </variablelist>
 
482
    </refsect2>
 
483
 
 
484
    <refsect2>
 
485
      <title>Mount points</title>
 
486
      <para>
 
487
        The mount points section specifies the different places to be
 
488
        mounted. These mount points will be private to the container
 
489
        and won't be visible by the processes running outside of the
 
490
        container. This is useful to mount /etc, /var or /home for
 
491
        examples.
 
492
      </para>
 
493
      <variablelist>
 
494
        <varlistentry>
 
495
          <term>
 
496
            <option>lxc.mount</option>
 
497
          </term>
 
498
          <listitem>
 
499
            <para>
 
500
              specify a file location in
 
501
              the <filename>fstab</filename> format, containing the
 
502
              mount informations. If the rootfs is an image file or a
 
503
              device block and the fstab is used to mount a point
 
504
              somewhere in this rootfs, the path of the rootfs mount
 
505
              point should be prefixed with the
 
506
              <filename>@LXCROOTFSMOUNT@</filename> default path or
 
507
              the value of <option>lxc.rootfs.mount</option> if
 
508
              specified.
 
509
            </para>
 
510
          </listitem>
 
511
        </varlistentry>
 
512
 
 
513
        <varlistentry>
 
514
          <term>
 
515
            <option>lxc.mount.entry</option>
 
516
          </term>
 
517
          <listitem>
 
518
            <para>
 
519
              specify a mount point corresponding to a line in the
 
520
              fstab format.
 
521
            </para>
 
522
          </listitem>
 
523
        </varlistentry>
 
524
 
 
525
      </variablelist>
 
526
    </refsect2>
 
527
 
 
528
    <refsect2>
 
529
      <title>Root file system</title>
 
530
      <para>
 
531
        The root file system of the container can be different than that
 
532
        of the host system.
 
533
      </para>
 
534
      <variablelist>
 
535
        <varlistentry>
 
536
          <term>
 
537
            <option>lxc.rootfs</option>
 
538
          </term>
 
539
          <listitem>
 
540
            <para>
 
541
              specify the root file system for the container. It can
 
542
              be an image file, a directory or a block device. If not
 
543
              specified, the container shares its root file system
 
544
              with the host.
 
545
            </para>
 
546
          </listitem>
 
547
        </varlistentry>
 
548
 
 
549
        <varlistentry>
 
550
          <term>
 
551
            <option>lxc.rootfs.mount</option>
 
552
          </term>
 
553
          <listitem>
 
554
            <para>
 
555
              where to recursively bind <option>lxc.rootfs</option>
 
556
              before pivoting.  This is to ensure success of the
 
557
              <citerefentry>
 
558
                <refentrytitle><command>pivot_root</command></refentrytitle>
 
559
                <manvolnum>8</manvolnum>
 
560
              </citerefentry>
 
561
              syscall.  Any directory suffices, the default should
 
562
              generally work.
 
563
            </para>
 
564
          </listitem>
 
565
        </varlistentry>
 
566
 
 
567
        <varlistentry>
 
568
          <term>
 
569
            <option>lxc.pivotdir</option>
 
570
          </term>
 
571
          <listitem>
 
572
            <para>
 
573
              where to pivot the original root file system under
 
574
              <option>lxc.rootfs</option>, specified relatively to
 
575
              that.  The default is <filename>mnt</filename>.
 
576
              It is created if necessary, and also removed after
 
577
              unmounting everything from it during container setup.
 
578
            </para>
 
579
          </listitem>
 
580
        </varlistentry>
 
581
      </variablelist>
 
582
    </refsect2>
 
583
 
 
584
    <refsect2>
 
585
      <title>Control group</title>
 
586
      <para>
 
587
        The control group section contains the configuration for the
 
588
        different subsystem. <command>lxc</command> does not check the
 
589
        correctness of the subsystem name. This has the disadvantage
 
590
        of not detecting configuration errors until the container is
 
591
        started, but has the advantage of permitting any future
 
592
        subsystem.
 
593
      </para>
 
594
      <variablelist>
 
595
        <varlistentry>
 
596
          <term>
 
597
            <option>lxc.cgroup.[subsystem name]</option>
 
598
          </term>
 
599
          <listitem>
 
600
            <para>
 
601
              specify the control group value to be set.  The
 
602
              subsystem name is the literal name of the control group
 
603
              subsystem.  The permitted names and the syntax of their
 
604
              values is not dictated by LXC, instead it depends on the
 
605
              features of the Linux kernel running at the time the
 
606
              container is started,
 
607
              eg. <option>lxc.cgroup.cpuset.cpus</option>
 
608
            </para>
 
609
          </listitem>
 
610
        </varlistentry>
 
611
      </variablelist>
 
612
    </refsect2>
 
613
 
 
614
    <refsect2>
 
615
      <title>Capabilities</title>
 
616
      <para>
 
617
        The capabilities can be dropped in the container if this one
 
618
        is run as root.
 
619
      </para>
 
620
      <variablelist>
 
621
        <varlistentry>
 
622
          <term>
 
623
            <option>lxc.cap.drop</option>
 
624
          </term>
 
625
          <listitem>
 
626
            <para>
 
627
              Specify the capability to be dropped in the container. A
 
628
              single line defining several capabilities with a space
 
629
              separation is allowed. The format is the lower case of
 
630
              the capability definition without the "CAP_" prefix,
 
631
              eg. CAP_SYS_MODULE should be specified as
 
632
              sys_module. See
 
633
              <citerefentry>
 
634
                <refentrytitle><command>capabilities</command></refentrytitle>
 
635
                <manvolnum>7</manvolnum>
 
636
              </citerefentry>,
 
637
            </para>
 
638
          </listitem>
 
639
        </varlistentry>
 
640
      </variablelist>
 
641
    </refsect2>
 
642
 
 
643
  </refsect1>
 
644
 
 
645
  <refsect1>
 
646
    <title>Examples</title>
 
647
      <para>
 
648
        In addition to the few examples given below, you will find
 
649
        some other examples of configuration file in @DOCDIR@/examples
 
650
      </para>
 
651
    <refsect2>
 
652
      <title>Network</title>
 
653
      <para>This configuration sets up a container to use a veth pair
 
654
        device with one side plugged to a bridge br0 (which has been
 
655
        configured before on the system by the administrator). The
 
656
        virtual network device visible in the container is renamed to
 
657
        eth0.</para>
 
658
      <programlisting>
 
659
        lxc.utsname = myhostname
 
660
        lxc.network.type = veth
 
661
        lxc.network.flags = up
 
662
        lxc.network.link = br0
 
663
        lxc.network.name = eth0
 
664
        lxc.network.hwaddr = 4a:49:43:49:79:bf
 
665
        lxc.network.ipv4 = 10.2.3.5/24 10.2.3.255
 
666
        lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3597
 
667
      </programlisting>
 
668
    </refsect2>
 
669
 
 
670
    <refsect2>
 
671
      <title>Control group</title>
 
672
      <para>This configuration will setup several control groups for
 
673
      the application, cpuset.cpus restricts usage of the defined cpu,
 
674
      cpus.share prioritize the control group, devices.allow makes
 
675
      usable the specified devices.</para>
 
676
      <programlisting>
 
677
        lxc.cgroup.cpuset.cpus = 0,1
 
678
        lxc.cgroup.cpu.shares = 1234
 
679
        lxc.cgroup.devices.deny = a
 
680
        lxc.cgroup.devices.allow = c 1:3 rw
 
681
        lxc.cgroup.devices.allow = b 8:0 rw
 
682
      </programlisting>
 
683
    </refsect2>
 
684
 
 
685
    <refsect2>
 
686
      <title>Complex configuration</title>
 
687
      <para>This example show a complex configuration making a complex
 
688
      network stack, using the control groups, setting a new hostname,
 
689
      mounting some locations and a changing root file system.</para>
 
690
      <programlisting>
 
691
        lxc.utsname = complex
 
692
        lxc.network.type = veth
 
693
        lxc.network.flags = up
 
694
        lxc.network.link = br0
 
695
        lxc.network.hwaddr = 4a:49:43:49:79:bf
 
696
        lxc.network.ipv4 = 10.2.3.5/24 10.2.3.255
 
697
        lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3597
 
698
        lxc.network.ipv6 = 2003:db8:1:0:214:5432:feab:3588
 
699
        lxc.network.type = macvlan
 
700
        lxc.network.flags = up
 
701
        lxc.network.link = eth0
 
702
        lxc.network.hwaddr = 4a:49:43:49:79:bd
 
703
        lxc.network.ipv4 = 10.2.3.4/24
 
704
        lxc.network.ipv4 = 192.168.10.125/24
 
705
        lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3596
 
706
        lxc.network.type = phys
 
707
        lxc.network.flags = up
 
708
        lxc.network.link = dummy0
 
709
        lxc.network.hwaddr = 4a:49:43:49:79:ff
 
710
        lxc.network.ipv4 = 10.2.3.6/24
 
711
        lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3297
 
712
        lxc.cgroup.cpuset.cpus = 0,1
 
713
        lxc.cgroup.cpu.shares = 1234
 
714
        lxc.cgroup.devices.deny = a
 
715
        lxc.cgroup.devices.allow = c 1:3 rw
 
716
        lxc.cgroup.devices.allow = b 8:0 rw
 
717
        lxc.mount = /etc/fstab.complex
 
718
        lxc.mount.entry = /lib /root/myrootfs/lib none ro,bind 0 0
 
719
        lxc.rootfs = /mnt/rootfs.complex
 
720
        lxc.cap.drop = sys_module mknod setuid net_raw
 
721
        lxc.cap.drop = mac_override
 
722
      </programlisting>
 
723
    </refsect2>
 
724
 
 
725
  </refsect1>
 
726
 
 
727
  <refsect1>
 
728
    <title>See Also</title>
 
729
    <simpara>    
 
730
      <citerefentry>
 
731
        <refentrytitle><command>chroot</command></refentrytitle>
 
732
        <manvolnum>1</manvolnum>
 
733
      </citerefentry>,
 
734
 
 
735
      <citerefentry>
 
736
        <refentrytitle><command>pivot_root</command></refentrytitle>
 
737
        <manvolnum>8</manvolnum>
 
738
      </citerefentry>,
 
739
 
 
740
      <citerefentry>
 
741
        <refentrytitle><filename>fstab</filename></refentrytitle>
 
742
        <manvolnum>5</manvolnum>
 
743
      </citerefentry>
 
744
 
 
745
    </simpara>
 
746
  </refsect1>
 
747
  
 
748
  &seealso;
 
749
 
 
750
  <refsect1>
 
751
    <title>Author</title>
 
752
    <para>Daniel Lezcano <email>daniel.lezcano@free.fr</email></para>
 
753
  </refsect1>
 
754
  
 
755
</refentry>
 
756
 
 
757
<!-- Keep this comment at the end of the file
 
758
Local variables:
 
759
mode: sgml
 
760
sgml-omittag:t
 
761
sgml-shorttag:t
 
762
sgml-minimize-attributes:nil
 
763
sgml-always-quote-attributes:t
 
764
sgml-indent-step:2
 
765
sgml-indent-data:t
 
766
sgml-parent-document:nil
 
767
sgml-default-dtd-file:nil
 
768
sgml-exposed-tags:nil
 
769
sgml-local-catalogs:nil
 
770
sgml-local-ecat-files:nil
 
771
End:
 
772
-->