lxc.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Sun, 27 Jan 2019 03:11:43 +0200
changeset 2345 cb168a3d27ec
parent 2317 897bb1696e5f
child 2346 f644e8d27cd2
permissions -rw-r--r--
Creating container by downloading pre-built image.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2022
2feba0bbefd0 Create new container in LXC.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     1
.. -*- coding: utf-8; -*-
2feba0bbefd0 Create new container in LXC.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     2
2feba0bbefd0 Create new container in LXC.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     3
=====
2feba0bbefd0 Create new container in LXC.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     4
 LXC
2feba0bbefd0 Create new container in LXC.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
=====
2feba0bbefd0 Create new container in LXC.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     6
.. contents::
2feba0bbefd0 Create new container in LXC.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     7
   :local:
2feba0bbefd0 Create new container in LXC.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     8
2317
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
     9
LXC releases
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    10
============
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    11
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    12
https://discuss.linuxcontainers.org/tags/release
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    13
  Announces of LXC & LXD releases.
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    14
https://discuss.linuxcontainers.org/t/lxc-3-0-0-has-been-released/1449
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    15
  LXC 3.0.0 has been released.
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    16
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    17
Supported templates
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    18
===================
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    19
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    20
https://github.com/lxc/lxc-templates
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    21
  Old style template scripts for LXC (prefer distrobuilder).
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    22
https://github.com/lxc/distrobuilder
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    23
  System container image builder for LXC and LXD.
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    24
https://brauner.github.io/2018/02/27/lxc-removes-legacy-template-build-system.html
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    25
  Details about replacing template stripts.
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    26
2023
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    27
Install LXC under Debian
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    28
========================
2345
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
    29
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
    30
Installation::
2023
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    31
2345
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
    32
  $ sudo apt install lxc
2023
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    33
2345
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
    34
Verify that your host/kernel satisfies LXC requirements::
2316
7de68fce3e7d Verify your host/kernel satisfy LXC requirements.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2023
diff changeset
    35
7de68fce3e7d Verify your host/kernel satisfy LXC requirements.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2023
diff changeset
    36
  $ sudo lxc-checkconfig
7de68fce3e7d Verify your host/kernel satisfy LXC requirements.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2023
diff changeset
    37
2023
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    38
To make network bridge install supplement packages::
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    39
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    40
  $ sudo apt-get install bridge-utils dnsmasq
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    41
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    42
To bootstrap Debian dostro into container install::
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    43
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    44
  $ sudo apt-get install debootstrap
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    45
2345
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
    46
To bring up network bridge create or edit ``/etc/default/lxc-net``::
2023
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    47
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    48
  USE_LXC_BRIDGE="true"
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    49
2345
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
    50
  LXC_ADDR="10.0.0.1"
2023
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    51
  LXC_NETMASK="255.255.255.0"
2345
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
    52
  LXC_NETWORK="10.0.0.0/24"
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
    53
  LXC_DHCP_RANGE="10.0.0.2,10.0.0.254"
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
    54
  LXC_DHCP_MAX="253"
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
    55
  LXC_DHCP_CONFILE=""
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
    56
  LXC_DOMAIN=""
2023
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    57
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    58
and start service::
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    59
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    60
  $ sudo service lxc-net start
2345
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
    61
  $ sudo systemctl restart lxc-net.service
2023
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    62
2022
2feba0bbefd0 Create new container in LXC.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    63
Create new container in LXC
2feba0bbefd0 Create new container in LXC.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    64
===========================
2feba0bbefd0 Create new container in LXC.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    65
2317
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    66
Create container from template::
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    67
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    68
  $ sudo lxc-create -t $TMPL -n $NAME -- $EXTRA_ARGS
2022
2feba0bbefd0 Create new container in LXC.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    69
2317
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    70
.. note::
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    71
   * ``-t`` defines distro name
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    72
   * ``-n`` gives name for container for further referencing
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    73
   * everything after ``--`` is passed to template script
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    74
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    75
Template name is based on file name from ``/usr/share/lxc/templates`` directory without ``lxc-``
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    76
prefix.
2022
2feba0bbefd0 Create new container in LXC.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    77
2317
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    78
List available templates with::
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    79
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    80
  $ ls -alh /usr/share/lxc/templates/
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    81
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    82
Examples of container creation command::
2023
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    83
2317
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    84
  $ sudo lxc-create -t debian -n deb-sid --  -r sid --enable-non-free
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    85
  $ sudo lxc-create -t debian -n deb-testing --  -r testing
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    86
  $ sudo lxc-create -t debian -n deb-stable --  -r stable -a amd64
2023
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    87
2317
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    88
  $ sudo lxc-create -t alpine -n alpine-3.7 --  -r 3.7
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    89
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    90
Each template has own options, which can be passed after ``--``. To get help on template specific
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    91
options run::
2023
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    92
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    93
  $ /usr/share/lxc/templates/lxc-ubuntu -h
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    94
  $ /usr/share/lxc/templates/lxc-debian -h
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    95
  $ /usr/share/lxc/templates/lxc-alpine -h
2345
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
    96
  $ /usr/share/lxc/templates/lxc-download -h
2023
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    97
  ...
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
    98
2317
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
    99
For Debian in order to use another miror::
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
   100
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
   101
  $ MIRROR=http://httpredir.debian.org/debian sudo lxc-create -t debian -n debtest -- -r sid
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
   102
2345
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
   103
List of prebuild containers:
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
   104
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
   105
* Visit http://images.linuxcontainers.org/ (default storage of LXC project).
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
   106
* Run ``/usr/share/lxc/templates/lxc-download --list``
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
   107
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
   108
Creating container by downloading pre-built image::
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
   109
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
   110
   sudo lxc-create -t download -n alpine-edge -- -d alpine -r edge -a amd64
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
   111
   sudo lxc-create -t download -n debian-sid -- -d debian -r sid -a amd64
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
   112
2317
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
   113
Since LXC v3.0 sh-templates moved to separate project and only 4 are left supported::
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
   114
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
   115
  $ lxc-create my-busybox -t busybox
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
   116
  $ lxc-create my-x -t download
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
   117
  $ lxc-create c1 -t local -- --metadata /path/to/meta.tar.xz --fstree /path/to/rootfs.tar.xz
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
   118
  $ lxc-create c2 -t oci -- --url docker://alpine
897bb1696e5f LXC releases. Supported templates.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2316
diff changeset
   119
2023
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   120
Put ``veth`` network configuration into container config ``/var/lib/lxc/$NAME/config``::
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   121
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   122
  lxc.network.type = veth
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   123
  lxc.network.flags = up
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   124
  lxc.network.link = lxcbr0
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   125
  lxc.network.veth.pair = veth-stretch
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   126
  lxc.network.name = veth-stretch
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   127
  lxc.network.ipv4 = 192.168.99.12/24
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   128
  lxc.network.ipv4.gateway = 192.168.99.1
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   129
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   130
Fix DNS resolution in container::
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   131
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   132
  $ echo nameserver 8.8.8.8 | sudo tee /var/lib/lxc/$NAME/rootfs/etc/resolv.conf
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   133
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   134
LXC Container management
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   135
========================
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   136
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   137
List available VMs::
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   138
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   139
  $ sudo lxc-ls
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   140
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   141
Start VM::
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   142
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   143
  $ sudo lxc-start -n $NAME
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   144
2316
7de68fce3e7d Verify your host/kernel satisfy LXC requirements.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2023
diff changeset
   145
Safely stop VM (honoring init system)::
2023
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   146
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   147
  $ sudo lxc-halt -n $NAME
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   148
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   149
Urgently stop VM::
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   150
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   151
  $ sudo lxc-stop -n $NAME
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   152
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   153
Mark container to start on boot in ``/var/lib/lxc/$NAME/config``::
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   154
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   155
  lxc.start.auto = 1
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   156
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   157
Link containers in non standard location to take them in account::
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   158
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   159
  $ ln -s /opt/lxc/$NAME /var/lib/lxc/$NAME
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   160
2345
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
   161
Run command in running container::
2023
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   162
2345
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
   163
  $ sudo lxc-attach -n $NAME
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
   164
  $ sudo lxc-attach -n $NAME bash
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
   165
  $ sudo lxc-attach -n $NAME -- ls -a
cb168a3d27ec Creating container by downloading pre-built image.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2317
diff changeset
   166
  $ sudo lxc-attach -n $NAME -- apk list
2023
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   167
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   168
Making snapshot
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   169
===============
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   170
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   171
See ``lxc-snapshot(1)``.
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   172
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   173
List of snapshots::
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   174
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   175
  $ sudo lxc-snapshot --list
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   176
  $ sudo lxc-snapshot -n $NAME --list
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   177
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   178
Make a snapshot::
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   179
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   180
  $ sudo lcx-halt -n $NAME
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   181
  $ sudo lcx-snapshot -n $NAME
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   182
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   183
Restore from snapshot::
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   184
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   185
  $ sudo lcx-halt -n $NAME
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   186
  $ sudo lcx-snapshot -n $NAME -r $SNAPNAME
72b82c178018 Install LXC under Debian. LXC Container management.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 2022
diff changeset
   187