meta data for this page
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| linux:lxc [2016/04/26 07:23] – niziak | linux:lxc [2020/09/07 19:01] (current) – niziak | ||
|---|---|---|---|
| Line 10: | Line 10: | ||
| sudo lxc-checkconfig | sudo lxc-checkconfig | ||
| </ | </ | ||
| + | |||
| Make sure cgroup filesystem is mounted | Make sure cgroup filesystem is mounted | ||
| + | |||
| <file | / | <file | / | ||
| cgroup / | cgroup / | ||
| Line 16: | Line 18: | ||
| ===== LXC Files ==== | ===== LXC Files ==== | ||
| + | |||
| ==== Priviledged containers ==== | ==== Priviledged containers ==== | ||
| * / | * / | ||
| Line 62: | Line 65: | ||
| │ | │ | ||
| │ | │ | ||
| - | '' | + | </ |
| ===== Basic usage ===== | ===== Basic usage ===== | ||
| - | |||
| <code bash> | <code bash> | ||
| lxc-create -n test-container -t ubuntu | lxc-create -n test-container -t ubuntu | ||
| + | lxc-create -n test-container -t ubuntu -B btrfs | ||
| + | lxc-create -n test-container -t download -B btrfs | ||
| + | lxc-destroy -n test-container | ||
| + | |||
| lxc-start -n test-container | lxc-start -n test-container | ||
| lxc-start -n test-container --daemon | lxc-start -n test-container --daemon | ||
| - | lxc-info -n test-container | ||
| - | lxc-attach -n test-container | ||
| - | lxc-console -n test-container | ||
| lxc-stop -n test-container | lxc-stop -n test-container | ||
| - | lxc-destroy -n test-container | ||
| - | </ | ||
| - | ==== Getting info ==== | ||
| - | <code bash> | ||
| lxc-ls --fancy | lxc-ls --fancy | ||
| lxc-info -n test-container | lxc-info -n test-container | ||
| + | |||
| + | lxc-attach -n test-container | ||
| + | lxc-console -n test-container | ||
| + | |||
| + | lxc-snapshot -n test-container | ||
| </ | </ | ||
| + | |||
| ==== Bind mounts ==== | ==== Bind mounts ==== | ||
| <file | local/ | <file | local/ | ||
| lxc.mount.entry = / | lxc.mount.entry = / | ||
| - | </code> | + | </file> |
| ===== Templates ===== | ===== Templates ===== | ||
| Line 179: | Line 183: | ||
| Create container: | Create container: | ||
| <code bash> | <code bash> | ||
| + | |||
| + | ==== Snapshot ==== | ||
| + | |||
| + | ~$ lxc-snapshot -n gitlab | ||
| + | newgidmap: gid range [165536-165537) -> [331072-331073) not allowed | ||
| + | error mapping child | ||
| + | setgid: Invalid argument | ||
| + | |||
| + | lxc-snapshow is calling '' | ||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| ==== Autostart ==== | ==== Autostart ==== | ||
| Line 186: | Line 211: | ||
| lxc.start.delay = 5 | lxc.start.delay = 5 | ||
| lxc.start.order = 100 | lxc.start.order = 100 | ||
| + | lxc.group = onboot | ||
| </ | </ | ||
| < | < | ||
| Line 195: | Line 221: | ||
| Edit cron | Edit cron | ||
| <code bash> | <code bash> | ||
| - | < | + | < |
| Line 205: | Line 231: | ||
| ... | ... | ||
| </ | </ | ||
| + | |||
| + | ===== Limit resources ===== | ||
| + | <file | config> | ||
| + | # 512MB memory limit, 256MB soft limie - system treats it as low mem condition | ||
| + | lxc.cgroup.memory.limit_in_bytes = 512M | ||
| + | lxc.cgroup.memory.soft_limit_in_bytes = 256M | ||
| + | # total usage memory (swap+ram) limit to 1G | ||
| + | lxc.cgroup.memory.memsw.limit_in_bytes = 1G | ||
| + | |||
| + | # arbitary value which only sets relative priority between containers | ||
| + | lxc.cgroup.cpu.shares = 100 | ||
| + | |||
| + | # restrict to use cpu core 0 and 1 | ||
| + | lxc.cgroup.cpuset.cpus 0,1 | ||
| + | |||
| + | lxc.cgroup.blkio.weight 500 | ||
| + | </ | ||
| + | |||
| + | Limiting runtime: | ||
| + | <code bash> | ||
| + | |||
| + | <file | ~/ | ||
| + | </ | ||
| + | ==== ulimit change for unpriv container ==== | ||
| + | Inside container, this command fails: | ||
| + | <code bash> | ||
| + | |||
| + | |||
| + | |||
| + | |||
| ===== Debug ===== | ===== Debug ===== | ||
| Line 227: | Line 283: | ||
| lxc-start 1460629578.159 ERROR lxc_start_ui - lxc_start.c: | lxc-start 1460629578.159 ERROR lxc_start_ui - lxc_start.c: | ||
| </ | </ | ||
| + | |||
| + | Debug levels: '' | ||
| + | |||
| + | Configure debug levels in config file: | ||
| + | lxc.logfile | ||
| + | lxc.loglevel | ||
| + | |||
| ===== Errors ===== | ===== Errors ===== | ||
| + | |||
| + | ==== Failed to load config for gitlab ==== | ||
| + | |||
| + | Error after system upgrade. LXC has been updated from 2.0.1 to v 3.0.1 | ||
| + | |||
| + | <code bash> | ||
| + | $ lxc-info gitlab | ||
| + | Failed to load config for gitlab | ||
| + | Failure to retrieve information on / | ||
| + | </ | ||
| + | |||
| + | SOLUTION: | ||
| + | <code bash> | ||
| + | cd / | ||
| + | lxc-update-config -c config | ||
| + | </ | ||
| + | |||
| ==== Failed to mount cgroup ==== | ==== Failed to mount cgroup ==== | ||
| < | < | ||
| Line 279: | Line 359: | ||
| systemctl restart lxc-net | systemctl restart lxc-net | ||
| </ | </ | ||
| + | |||
| + | ==== umount: /dev/zero: block devices are not permitted on filesystem ==== | ||
| + | During shutdown | ||
| + | < | ||
| + | umount: /dev/zero: block devices are not permitted on filesystem | ||
| + | umount: / | ||
| + | umount: /dev/tty: block devices are not permitted on filesystem | ||
| + | </ | ||
| + | >Ah - this is happening because the shutdown process is trying to do a | ||
| + | >force umount. | ||
| + | >a bind mount from a fuse or nfs, it'll disconnect the original mount. | ||
| + | > | ||
| + | >You can test this yourself by logging in and doing | ||
| + | > | ||
| + | >umount -f / | ||
| + | > | ||
| + | >versus | ||
| + | > | ||
| + | >umount / | ||