LXC: различия между версиями

Материал из ALT Linux Wiki
м (+диагностика)
м (сделал пример воспроизводимым)
Строка 14: Строка 14:
  # touch config
  # touch config
  # tar Jcf metadata.tar.xz config
  # tar Jcf metadata.tar.xz config
# wget http://ftp.altlinux.org/pub/distributions/ALTLinux/p10/images/cloud/x86_64/alt-p10-rootfs-sysvinit-x86_64.tar.xz


Создание пробного контейнера:
Создание пробного контейнера:
  # cd /var/lib/lxc
  # cd /var/lib/lxc
  # lxc-create -t local -n ''alt-p10-test'' -B dir -- --fstree ''lxc-sysvinit-etcnet-20240205-x86_64.tar.xz'' --metadata metadata.tar.xz
  # lxc-create -t local -n ''alt-p10-test'' -B dir -- --fstree ''alt-p10-rootfs-sysvinit-x86_64.tar.xz'' --metadata metadata.tar.xz


Запуск:
Запуск:
Строка 44: Строка 45:
  # sed -i 's,^#1:234:,1:234:,' ''alt-p10-test''/rootfs/etc/inittab
  # sed -i 's,^#1:234:,1:234:,' ''alt-p10-test''/rootfs/etc/inittab
и задайте пароль root внутри контейнера:
и задайте пароль root внутри контейнера:
# lxc-start -n alt-p10-test
  # lxc-attach ''alt-p10-test''
  # lxc-attach ''alt-p10-test''
  ## passwd root
  ## passwd root
Строка 80: Строка 82:
  lxc-start: alt-p10-test: ../src/lxc/conf.c: lxc_setup: 4474 Failed to setup console
  lxc-start: alt-p10-test: ../src/lxc/conf.c: lxc_setup: 4474 Failed to setup console
  lxc-start: alt-p10-test: ../src/lxc/start.c: do_start: 1272 Failed to setup container "alt-p10-test"
  lxc-start: alt-p10-test: ../src/lxc/start.c: do_start: 1272 Failed to setup container "alt-p10-test"
проверьте, что никакая дрянь из состава lxc не испортила режим монтирования {{path|/dev}} или {{path|/dev/pts}}:
проверьте, что никакая дрянь из состава {{pkg|lxc}} не испортила режим монтирования {{path|/dev}} или {{path|/dev/pts}}:
  # mount | grep /dev
  # mount | grep /dev
и при необходимости исправьте:
и при необходимости исправьте:

Версия от 14:39, 24 апреля 2024

lxc — реализация контейнеров Linux, вошедшая в ядро, начиная с 2.6.29[1]. Смотрите также LXD.

По применению доступно множество материалов, рекомендуется вики xgu.ru.

Заметки на манжетах

Установка:

# apt-get install lxc

Проверка:

# lxc-checkconfig

Подготовка (единожды):

# cd /var/lib/lxc
# touch config
# tar Jcf metadata.tar.xz config
# wget http://ftp.altlinux.org/pub/distributions/ALTLinux/p10/images/cloud/x86_64/alt-p10-rootfs-sysvinit-x86_64.tar.xz

Создание пробного контейнера:

# cd /var/lib/lxc
# lxc-create -t local -n alt-p10-test -B dir -- --fstree alt-p10-rootfs-sysvinit-x86_64.tar.xz --metadata metadata.tar.xz

Запуск:

# lxc-start -n alt-p10-test

Список:

# lxc-ls -f

Подключение:

# lxc-attach -n alt-p10-test

Останов (извне; внутри должны работать команды shutdown/reboot/poweroff):

# lxc-stop -n alt-p10-test

консоль

Вход в консоли:

# lxc-console -n alt-p10-test

При диагностике вида

lxc-console: alt-p10-test: ../src/lxc/commands.c: lxc_cmd_get_tty_fd: 1200 Bad file descriptor - Denied access to tty

разрешите терминалы до (пере)запуска контейнера:

# cd /var/lib/lxc
# cat >> alt-p10-test/config << EOF
lxc.pty.max = 16
lxc.tty.max = 1
EOF
# sed -i 's,^#1:234:,1:234:,' alt-p10-test/rootfs/etc/inittab

и задайте пароль root внутри контейнера:

# lxc-start -n alt-p10-test
# lxc-attach alt-p10-test
## passwd root

сеть

пример конфигурации бриджа

# head /etc/net/ifaces/lxcbr0/*
==> /etc/net/ifaces/lxcbr0/ipv4address <==
10.0.0.2/24

==> /etc/net/ifaces/lxcbr0/ipv4route <==
default via 10.0.0.1
==> /etc/net/ifaces/lxcbr0/options <==
TYPE=bri
HOST=eth1
ONBOOT=yes
DISABLED=no
BOOTPROTO=static
BRIDGE_OPTIONS="stp_state 0"
==> /etc/net/ifaces/lxcbr0/resolv.conf <==
search lxc.local
domain lxc.local
nameserver 10.0.0.1
nameserver 10.0.0.254

диагностика

Проблемы запуска контейнера:

# lxc-start -F --logpriority DEBUG -n alt-p10-test

При отказе запуска и диагностике вида:

lxc-start: alt-p10-test: ../src/lxc/conf.c: lxc_setup_dev_console: 2028 Read-only file system - Failed to change console mode
lxc-start: alt-p10-test: ../src/lxc/conf.c: lxc_setup_console: 2188 Read-only file system - Failed to setup console
lxc-start: alt-p10-test: ../src/lxc/conf.c: lxc_setup: 4474 Failed to setup console
lxc-start: alt-p10-test: ../src/lxc/start.c: do_start: 1272 Failed to setup container "alt-p10-test"

проверьте, что никакая дрянь из состава lxc не испортила режим монтирования /dev или /dev/pts:

# mount | grep /dev

и при необходимости исправьте:

# mount -o remount,rw /dev/pts

Ссылки

Примечания

  1. на Эльбрусе работает начиная с ядра 4.9.76-elbrus-def-alt1.11.8