В надежных контейнерах 14.04 автозагрузка не удалась, несмотря на то, что все настройки установлены в соответствии с требованиями 14.04. Они показывают все как STOPPED
Я правильно настроил 2 контейнера LXC:
calypso
encelado
Они работают отлично, если я запускаю
sudo lxc-autostart
затем
sudo lxc-ls --fancy
приводит к:
ubuntu@saturn:/etc/init$ sudo lxc-ls --fancy
NAME STATE IPV4 IPV6 AUTOSTART
calypso RUNNING 192.168.1.161 - YES
encelado RUNNING 192.168.1.162 - YES
Проблема заключается в попытке запустить их при загрузке.
У меня по адресу: /var/lib/lxc/calypso/config
:
# Template used to create this container: /usr/share/lxc/templates/lxc-download
# Parameters passed to the template:
# For additional config options, please look at lxc.conf(5)
# Distribution configuration
lxc.include = /usr/share/lxc/config/ubuntu.common.conf
lxc.arch = x86_64
# Container specific configuration
lxc.rootfs = /var/lib/lxc/calypso/rootfs
lxc.utsname = calypso
# Network configuration
lxc.network.type = veth
lxc.network.flags = up
#lxc.network.link = lxcbr0
lxc.network.link = br0
lxc.network.hwaddr = 00:16:3e:64:0b:6e
# Assign static IP Address
lxc.network.ipv4 = 192.168.1.161/24
lxc.network.ipv4.gateway = 192.168.1.1
# Autostart
lxc.start.auto = 1
lxc.start.delay = 5
lxc.start.order = 100
и у меня есть LXC_AUTO="false"
, как требуется внутри /etc/default/lxc
:
LXC_AUTO="false"
USE_LXC_BRIDGE="false" # overridden in lxc-net
[ -f /etc/default/lxc-net ] && . /etc/default/lxc-net
LXC_SHUTDOWN_TIMEOUT=120
Любая идея о том, почему контейнеры не ' начать при загрузке? При перезагрузке они всегда находятся в ОСТАНОВЛЕННОМ состоянии:
ubuntu@saturn:~$ sudo lxc-ls --fancy
NAME STATE IPV4 IPV6 AUTOSTART
calypso STOPPED - - YES
encelado STOPPED - - YES
, а затем снова их можно запустить вручную, используя sudo lxc-autostart
Вы говорите:
у меня есть LXC_AUTO = "ложь" как требуется в/etc/default/lxc
, Который конкретно говорит новомодному заданию НЕ запускать любой контейнер. Просто не устанавливайте его или устанавливайте его на истинный, и Вы заметите контейнеры, запускающиеся во время начальной загрузки.
Проверьте, что LXC_AUTO верен в /etc/default/lxc
LXC_AUTO="true"
, и добавьте параметр группы к своей конфигурации
lxc.group = onboot
(или добавьте BOOTGROUPS=
с Вашей установкой к /etc/default/lxc
)
я думаю, что в настоящее время руководство Ubuntus в Ubuntu lxc неправильно указывает, что LXC_AUTO
должен быть false
. Также проигнорируйте /etc/default/lxc
требование символьной ссылки.
В дополнение к тому, что отправил Manwe (который я нашел, чтобы быть корректным), я должен был сделать некоторую дополнительную работу, потому что я использую-P опцию на всех своих командах lxc для использования пользовательского пути lxc, это отличается от /var/lib/lxc
. (Ретроспективно, если бы я сделал это снова, я, вероятно, придерживался бы местоположения по умолчанию, но это ни здесь, ни там.)
Редактирование /etc/default/lxc
и добавляют в конце:
OPTIONS="-P <lxcpath>"
Редактирование /etc/init/lxc-instance.conf
и добавляют
[ -f /etc/default/lxc ] && . /etc/default/lxc
, чтобы запуститься pre-start
и script
и добавить $OPTIONS
после lxc-wait
и lxc-start
.
Как так:
pre-start script
[ -f /etc/default/lxc ] && . /etc/default/lxc
lxc-wait $OPTIONS -s RUNNING -n $NAME -t 0 && { stop; exit 0; } || true
end script
script
[ -f /etc/default/lxc ] && . /etc/default/lxc
exec lxc-start $OPTIONS -n $NAME
end script
Тогда это может быть протестировано с:
sudo service lxc restart
sudo lxc-ls -P <lxcpath> --fancy