~serge-hallyn/ubuntu/quantal/lxc/lxc-fixapi

« back to all changes in this revision

Viewing changes to .pc/11-doc-ip-address.patch/doc/lxc.conf.sgml.in

  • Committer: Package Import Robot
  • Author(s): Serge Hallyn
  • Date: 2012-04-26 15:18:35 UTC
  • mfrom: (3.1.41 sid)
  • Revision ID: package-import@ubuntu.com-20120426151835-3vz6kb4m90gb26js
Tags: 0.8.0~rc1-4ubuntu1
* Merge from unstable.  Remaining changes:
  - control:
    - update maintainer
    - Build-Depends: add dh-apparmor and libapparmor-dev
    - lxc Depends: add bridge-utils, dnsmasq-base, iptables, rsync
    - lxc Recommends: add cgroup-lite | cgroup-bin, openssl
    - lxc Suggests: add btrfs-tools, lvm2, qemu-user-static
    - lxc Conflicts: remove (cgroup-bin)
  - Add lxc-start-ephemeral and lxc-wait to debian/local
  - apparmor:
    - add lxc.apparmor, lxc-containers.apparmor,
      lxc-default.apparmor, and new lxc.apparmor.in
  - add debian/lxc.conf (default container creation config file)
  - debian/lxc.install.in:
    * add lxc-start-ephemeral
    * add debian/lxc.conf
    * skip lxc-debconf*
    * skip lxc-ls (Use upstream's)
  - debian/lxc*.install.in: use '*', not @DEB_HOST_MULTIARCH@
  - Use our own completely different lxc.postinst and lxc.postrm
  - remove lxc.templates
  - debian/rules:
    * add DEB_DH_INSTALLINIT_ARGS = --upstart-only
    * don't do debconf stuff
    * add debian/*.apparmor.in to files processed under
      override_dh_auto_clean
    * don't comment out ubuntu or busybox templates
    * do apparmor stuff and install our own lxc-wait under override_dh_install
    * install our upstart scripts in override_dh_installinit
  - add lxc.default, lxc.lxc-net.upstart, lxc.upstart under
    debian/

* patches kept:
  - 0013-lxc-create-use-default-config.patch (needed manual rebase)
  - 0030-ubuntu-template-fail.patch
  - 0031-ubuntu-template-resolvconf.patch
  - 0044-lxc-destroy-rm-autos
  - debian/patches/0045-fix-other-templates
  - debian/patches/0046-lxc-clone-change-hwaddr
  - debian/patches/0047-bindhome-check-shell
  - debian/patches/0049-ubuntu-template-sudo-and-cleanup
  - debian/patches/0050-clone-lvm-sizes
  - debian/patches/0052-ubuntu-bind-user-conflict
  - debian/patches/0053-lxc-start-pin-rootfs
  - debian/patches/0054-ubuntu-debug
  - debian/patches/0055-ubuntu-handle-badgrp
  - debian/patches/0056-dont-watch-utmp
  - debian/patches/0057-update-manpages
  - debian/patches/0058-fixup-ubuntu-cloud
  - debian/patches/0059-reenable-daily-cloudimg
  - debian/patches/0060-lxc-shutdown
  - debian/patches/0061-lxc-start-apparmor
  - debian/patches/0062-templates-relative-paths
  - debian/patches/0063-check-apparmor-enabled
  - debian/patches/0064-apparmor-mount-proc
  - debian/patches/0065-fix-bindhome-relpath
  - debian/patches/0066-confile-typo
  - debian/patches/0067-templates-lxc-profile
  - debian/patches/0068-fix-lxc-config-layout 
  - debian/patches/0069-ubuntu-cloud-fix
  - debian/patches/0070-templates-rmdir-dev-shm
  - debian/patches/0071-ubuntu-cloud-fix-image-extraction
  - debian/patches/0072-lxc-shutdown-help
  - debian/patches/0073-lxc-destroy-waits-before-destroy
  - mark all patches which have been forwarded as such, refresh all
* 0074-lxc-execute-find-init: lxc-init had moved.  Introduce a function in
  lxc-execute to go find it.  Otherwise lxc-execute for any older releases
  will fail.
* 0075-lxc-ls-bash: lxc-ls needs bash, not sh
* add debian/lxc.apparmor.in so DEB_HOST_MULTIARCH can be expanded
* 0076-fix-sprintfs:  - check return values for all sprintfs and snprintfs
  which could overflow (LP: #988918)
* 0077-execute-without-rootfs: let lxc-execute succeed with no rootfs
  (LP: #981955)

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.ipv6</option>
304
 
          </term>
305
 
          <listitem>
306
 
            <para>
307
 
              specify the ipv6 address to assign to the virtualized
308
 
              interface. Several lines specify several ipv6 addresses.
309
 
              The address is in format x::y/m,
310
 
              eg. 2003:db8:1:0:214:1234:fe0b:3596/64
311
 
            </para>
312
 
          </listitem>
313
 
        </varlistentry>
314
 
 
315
 
        <varlistentry>
316
 
          <term>
317
 
            <option>lxc.network.script.up</option>
318
 
          </term>
319
 
          <listitem>
320
 
            <para>
321
 
              add a configuration option to specify a script to be
322
 
              executed after creating and configuring the network used
323
 
              from the host side. The following arguments are passed
324
 
              to the script: container name and config section name
325
 
              (net) Additional arguments depend on the config section
326
 
              employing a script hook; the following are used by the
327
 
              network system: execution context (up), network type
328
 
              (empty/veth/macvlan/phys), Depending on the network
329
 
              type, other arguments may be passed:
330
 
              veth/macvlan/phys. And finally (host-sided) device name.
331
 
            </para>
332
 
          </listitem>
333
 
        </varlistentry>
334
 
      </variablelist>
335
 
    </refsect2>
336
 
 
337
 
    <refsect2>
338
 
      <title>New pseudo tty instance (devpts)</title>
339
 
      <para>
340
 
        For stricter isolation the container can have its own private
341
 
        instance of the pseudo tty.
342
 
      </para>
343
 
      <variablelist>
344
 
        <varlistentry>
345
 
          <term>
346
 
            <option>lxc.pts</option>
347
 
          </term>
348
 
          <listitem>
349
 
            <para>
350
 
              If set, the container will have a new pseudo tty
351
 
              instance, making this private to it. The value specifies
352
 
              the maximum number of pseudo ttys allowed for a pts
353
 
              instance (this limitation is not implemented yet).
354
 
            </para>
355
 
          </listitem>
356
 
        </varlistentry>
357
 
      </variablelist>
358
 
    </refsect2>
359
 
 
360
 
    <refsect2>
361
 
      <title>Container system console</title>
362
 
      <para>
363
 
        If the container is configured with a root filesystem and the
364
 
        inittab file is setup to use the console, you may want to specify
365
 
        where goes the output of this console.
366
 
      </para>
367
 
      <variablelist>
368
 
        <varlistentry>
369
 
          <term>
370
 
            <option>lxc.console</option>
371
 
          </term>
372
 
          <listitem>
373
 
            <para>
374
 
              Specify a path to a file where the console output will
375
 
              be written. The keyword 'none' will simply disable the
376
 
              console. This is dangerous once if have a rootfs with a
377
 
              console device file where the application can write, the
378
 
              messages will fall in the host.
379
 
            </para>
380
 
          </listitem>
381
 
        </varlistentry>
382
 
      </variablelist>
383
 
    </refsect2>
384
 
 
385
 
    <refsect2>
386
 
      <title>Console through the ttys</title>
387
 
      <para>
388
 
        If the container is configured with a root filesystem and the
389
 
        inittab file is setup to launch a getty on the ttys. This
390
 
        option will specify the number of ttys to be available for the
391
 
        container. The number of getty in the inittab file of the
392
 
        container should not be greater than the number of ttys
393
 
        specified in this configuration file, otherwise the excess
394
 
        getty sessions will die and respawn indefinitly giving
395
 
        annoying messages on the console.
396
 
      </para>
397
 
      <variablelist>
398
 
        <varlistentry>
399
 
          <term>
400
 
            <option>lxc.tty</option>
401
 
          </term>
402
 
          <listitem>
403
 
            <para>
404
 
              Specify the number of tty to make available to the
405
 
              container.
406
 
            </para>
407
 
          </listitem>
408
 
        </varlistentry>
409
 
      </variablelist>
410
 
    </refsect2>
411
 
 
412
 
    <refsect2>
413
 
      <title>Mount points</title>
414
 
      <para>
415
 
        The mount points section specifies the different places to be
416
 
        mounted. These mount points will be private to the container
417
 
        and won't be visible by the processes running outside of the
418
 
        container. This is useful to mount /etc, /var or /home for
419
 
        examples.
420
 
      </para>
421
 
      <variablelist>
422
 
        <varlistentry>
423
 
          <term>
424
 
            <option>lxc.mount</option>
425
 
          </term>
426
 
          <listitem>
427
 
            <para>
428
 
              specify a file location in
429
 
              the <filename>fstab</filename> format, containing the
430
 
              mount informations. If the rootfs is an image file or a
431
 
              device block and the fstab is used to mount a point
432
 
              somewhere in this rootfs, the path of the rootfs mount
433
 
              point should be prefixed with the
434
 
              <filename>@LXCROOTFSMOUNT@</filename> default path or
435
 
              the value of <option>lxc.rootfs.mount</option> if
436
 
              specified.
437
 
            </para>
438
 
          </listitem>
439
 
        </varlistentry>
440
 
 
441
 
        <varlistentry>
442
 
          <term>
443
 
            <option>lxc.mount.entry</option>
444
 
          </term>
445
 
          <listitem>
446
 
            <para>
447
 
              specify a mount point corresponding to a line in the
448
 
              fstab format.
449
 
            </para>
450
 
          </listitem>
451
 
        </varlistentry>
452
 
 
453
 
      </variablelist>
454
 
    </refsect2>
455
 
 
456
 
    <refsect2>
457
 
      <title>Root file system</title>
458
 
      <para>
459
 
        The root file system of the container can be different than that
460
 
        of the host system.
461
 
      </para>
462
 
      <variablelist>
463
 
        <varlistentry>
464
 
          <term>
465
 
            <option>lxc.rootfs</option>
466
 
          </term>
467
 
          <listitem>
468
 
            <para>
469
 
              specify the root file system for the container. It can
470
 
              be an image file, a directory or a block device. If not
471
 
              specified, the container shares its root file system
472
 
              with the host.
473
 
            </para>
474
 
          </listitem>
475
 
        </varlistentry>
476
 
 
477
 
        <varlistentry>
478
 
          <term>
479
 
            <option>lxc.rootfs.mount</option>
480
 
          </term>
481
 
          <listitem>
482
 
            <para>
483
 
              where to recursively bind <option>lxc.rootfs</option>
484
 
              before pivoting.  This is to ensure success of the
485
 
              <citerefentry>
486
 
                <refentrytitle><command>pivot_root</command></refentrytitle>
487
 
                <manvolnum>8</manvolnum>
488
 
              </citerefentry>
489
 
              syscall.  Any directory suffices, the default should
490
 
              generally work.
491
 
            </para>
492
 
          </listitem>
493
 
        </varlistentry>
494
 
 
495
 
        <varlistentry>
496
 
          <term>
497
 
            <option>lxc.pivotdir</option>
498
 
          </term>
499
 
          <listitem>
500
 
            <para>
501
 
              where to pivot the original root file system under
502
 
              <option>lxc.rootfs</option>, specified relatively to
503
 
              that.  The default is <filename>mnt</filename>.
504
 
              It is created if necessary, and also removed after
505
 
              unmounting everything from it during container setup.
506
 
            </para>
507
 
          </listitem>
508
 
        </varlistentry>
509
 
      </variablelist>
510
 
    </refsect2>
511
 
 
512
 
    <refsect2>
513
 
      <title>Control group</title>
514
 
      <para>
515
 
        The control group section contains the configuration for the
516
 
        different subsystem. <command>lxc</command> does not check the
517
 
        correctness of the subsystem name. This has the disadvantage
518
 
        of not detecting configuration errors until the container is
519
 
        started, but has the advantage of permitting any future
520
 
        subsystem.
521
 
      </para>
522
 
      <variablelist>
523
 
        <varlistentry>
524
 
          <term>
525
 
            <option>lxc.cgroup.[subsystem name]</option>
526
 
          </term>
527
 
          <listitem>
528
 
            <para>
529
 
              specify the control group value to be set.  The
530
 
              subsystem name is the literal name of the control group
531
 
              subsystem.  The permitted names and the syntax of their
532
 
              values is not dictated by LXC, instead it depends on the
533
 
              features of the Linux kernel running at the time the
534
 
              container is started,
535
 
              eg. <option>lxc.cgroup.cpuset.cpus</option>
536
 
            </para>
537
 
          </listitem>
538
 
        </varlistentry>
539
 
      </variablelist>
540
 
    </refsect2>
541
 
 
542
 
    <refsect2>
543
 
      <title>Capabilities</title>
544
 
      <para>
545
 
        The capabilities can be dropped in the container if this one
546
 
        is run as root.
547
 
      </para>
548
 
      <variablelist>
549
 
        <varlistentry>
550
 
          <term>
551
 
            <option>lxc.cap.drop</option>
552
 
          </term>
553
 
          <listitem>
554
 
            <para>
555
 
              Specify the capability to be dropped in the container. A
556
 
              single line defining several capabilities with a space
557
 
              separation is allowed. The format is the lower case of
558
 
              the capability definition without the "CAP_" prefix,
559
 
              eg. CAP_SYS_MODULE should be specified as
560
 
              sys_module. See
561
 
              <citerefentry>
562
 
                <refentrytitle><command>capabilities</command></refentrytitle>
563
 
                <manvolnum>7</manvolnum>
564
 
              </citerefentry>,
565
 
            </para>
566
 
          </listitem>
567
 
        </varlistentry>
568
 
      </variablelist>
569
 
    </refsect2>
570
 
 
571
 
  </refsect1>
572
 
 
573
 
  <refsect1>
574
 
    <title>Examples</title>
575
 
      <para>
576
 
        In addition to the few examples given below, you will find
577
 
        some other examples of configuration file in @DOCDIR@/examples
578
 
      </para>
579
 
    <refsect2>
580
 
      <title>Network</title>
581
 
      <para>This configuration sets up a container to use a veth pair
582
 
        device with one side plugged to a bridge br0 (which has been
583
 
        configured before on the system by the administrator). The
584
 
        virtual network device visible in the container is renamed to
585
 
        eth0.</para>
586
 
      <programlisting>
587
 
        lxc.utsname = myhostname
588
 
        lxc.network.type = veth
589
 
        lxc.network.flags = up
590
 
        lxc.network.link = br0
591
 
        lxc.network.name = eth0
592
 
        lxc.network.hwaddr = 4a:49:43:49:79:bf
593
 
        lxc.network.ipv4 = 1.2.3.5/24 1.2.3.255
594
 
        lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3597
595
 
      </programlisting>
596
 
    </refsect2>
597
 
 
598
 
    <refsect2>
599
 
      <title>Control group</title>
600
 
      <para>This configuration will setup several control groups for
601
 
      the application, cpuset.cpus restricts usage of the defined cpu,
602
 
      cpus.share prioritize the control group, devices.allow makes
603
 
      usable the specified devices.</para>
604
 
      <programlisting>
605
 
        lxc.cgroup.cpuset.cpus = 0,1
606
 
        lxc.cgroup.cpu.shares = 1234
607
 
        lxc.cgroup.devices.deny = a
608
 
        lxc.cgroup.devices.allow = c 1:3 rw
609
 
        lxc.cgroup.devices.allow = b 8:0 rw
610
 
      </programlisting>
611
 
    </refsect2>
612
 
 
613
 
    <refsect2>
614
 
      <title>Complex configuration</title>
615
 
      <para>This example show a complex configuration making a complex
616
 
      network stack, using the control groups, setting a new hostname,
617
 
      mounting some locations and a changing root file system.</para>
618
 
      <programlisting>
619
 
        lxc.utsname = complex
620
 
        lxc.network.type = veth
621
 
        lxc.network.flags = up
622
 
        lxc.network.link = br0
623
 
        lxc.network.hwaddr = 4a:49:43:49:79:bf
624
 
        lxc.network.ipv4 = 1.2.3.5/24 1.2.3.255
625
 
        lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3597
626
 
        lxc.network.ipv6 = 2003:db8:1:0:214:5432:feab:3588
627
 
        lxc.network.type = macvlan
628
 
        lxc.network.flags = up
629
 
        lxc.network.link = eth0
630
 
        lxc.network.hwaddr = 4a:49:43:49:79:bd
631
 
        lxc.network.ipv4 = 1.2.3.4/24
632
 
        lxc.network.ipv4 = 192.168.10.125/24
633
 
        lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3596
634
 
        lxc.network.type = phys
635
 
        lxc.network.flags = up
636
 
        lxc.network.link = dummy0
637
 
        lxc.network.hwaddr = 4a:49:43:49:79:ff
638
 
        lxc.network.ipv4 = 1.2.3.6/24
639
 
        lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3297
640
 
        lxc.cgroup.cpuset.cpus = 0,1
641
 
        lxc.cgroup.cpu.shares = 1234
642
 
        lxc.cgroup.devices.deny = a
643
 
        lxc.cgroup.devices.allow = c 1:3 rw
644
 
        lxc.cgroup.devices.allow = b 8:0 rw
645
 
        lxc.mount = /etc/fstab.complex
646
 
        lxc.mount.entry = /lib /root/myrootfs/lib none ro,bind 0 0
647
 
        lxc.rootfs = /mnt/rootfs.complex
648
 
        lxc.cap.drop = sys_module mknod setuid net_raw
649
 
        lxc.cap.drop = mac_override
650
 
      </programlisting>
651
 
    </refsect2>
652
 
 
653
 
  </refsect1>
654
 
 
655
 
  <refsect1>
656
 
    <title>See Also</title>
657
 
    <simpara>    
658
 
      <citerefentry>
659
 
        <refentrytitle><command>chroot</command></refentrytitle>
660
 
        <manvolnum>1</manvolnum>
661
 
      </citerefentry>,
662
 
 
663
 
      <citerefentry>
664
 
        <refentrytitle><command>pivot_root</command></refentrytitle>
665
 
        <manvolnum>8</manvolnum>
666
 
      </citerefentry>,
667
 
 
668
 
      <citerefentry>
669
 
        <refentrytitle><filename>fstab</filename></refentrytitle>
670
 
        <manvolnum>5</manvolnum>
671
 
      </citerefentry>
672
 
 
673
 
    </simpara>
674
 
  </refsect1>
675
 
  
676
 
  &seealso;
677
 
 
678
 
  <refsect1>
679
 
    <title>Author</title>
680
 
    <para>Daniel Lezcano <email>daniel.lezcano@free.fr</email></para>
681
 
  </refsect1>
682
 
  
683
 
</refentry>
684
 
 
685
 
<!-- Keep this comment at the end of the file
686
 
Local variables:
687
 
mode: sgml
688
 
sgml-omittag:t
689
 
sgml-shorttag:t
690
 
sgml-minimize-attributes:nil
691
 
sgml-always-quote-attributes:t
692
 
sgml-indent-step:2
693
 
sgml-indent-data:t
694
 
sgml-parent-document:nil
695
 
sgml-default-dtd-file:nil
696
 
sgml-exposed-tags:nil
697
 
sgml-local-catalogs:nil
698
 
sgml-local-ecat-files:nil
699
 
End:
700
 
-->