En confiance, les conteneurs 14.04 ne parviennent pas à démarrer automatiquement malgré le paramétrage requis par 14.04. Ils montrent tous comme ARRÊTÉS
J'ai correctement configuré 2 conteneurs LXC:
calypso
encelado
Ils courent parfaitement si je coursSudo lxc-autostart
puisSudo lxc-ls --fancy
résulte en:
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
Le problème est d'essayer de les exécuter au démarrage.
J'ai à: /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
et j'ai LXC_AUTO="false"
comme requis à l'intérieur de /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
Une idée sur pourquoi les conteneurs ne commencent pas au démarrage? Au redémarrage, ils sont toujours à l'état STOPPED:
ubuntu@saturn:~$ Sudo lxc-ls --fancy
NAME STATE IPV4 IPV6 AUTOSTART
calypso STOPPED - - YES
encelado STOPPED - - YES
et encore une fois ils peuvent être démarrés manuellement, en utilisant Sudo lxc-autostart
Vous dites:
J'ai LXC_AUTO = "false" comme requis dans/etc/default/lxc
Cela indique spécifiquement au travail parvenu NE PAS démarrer un conteneur. Il suffit de ne pas le définir ou de le définir sur true et vous remarquerez que les conteneurs commencent au moment du démarrage.
En plus de ce que Manwe a posté (ce que j’ai trouvé correct), j’ai dû faire un travail supplémentaire car j’utilise l’option -P sur toutes mes commandes lxc pour utiliser un chemin personnalisé lxc différent de /var/lib/lxc
. (Rétrospectivement, si je faisais cela à nouveau, je resterais probablement avec l'emplacement par défaut, mais ce n'est ni ici ni là.)
Éditez /etc/default/lxc
et ajoutez à la fin:
OPTIONS="-P <lxcpath>"
Éditez /etc/init/lxc-instance.conf
et ajoutez
[ -f /etc/default/lxc ] && . /etc/default/lxc
pour démarrer pre-start
et script
et ajouter $OPTIONS
après lxc-wait
et lxc-start
.
Ainsi:
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
Ensuite, il peut être testé avec:
Sudo service lxc restart
Sudo lxc-ls -P <lxcpath> --fancy
Vérifiez que LXC_AUTO est vrai dans /etc/default/lxc
LXC_AUTO="true"
et ajouter un paramètre de groupe à votre configuration
lxc.group = onboot
(ou ajoutez BOOTGROUPS=
avec votre configuration à /etc/default/lxc
)
Je pense que le guide actuel Ubuntus à l'adresse buntu lxc indique à tort que LXC_AUTO
devrait être false
. Ignorez également /etc/default/lxc
l'exigence de lien symbolique.