在Linux中如何在启动时自动启动LXD容器VM

时间:2020-01-09 14:16:51  来源:igfitidea点击:

如何设置LXD容器以使用lxc命令在Linux操作系统中启动时启动?
当LXD启动时,我们总是可以启动容器。
您所要做的只是将boot.autostart设置为true。
您可以使用boot.autostart.priority(默认值为0)选项定义启动容器的顺序(从高位开始)。
接下来,我们可以使用boot.autostart.delay选项定义容器启动后等待下一个秒数,以启动下一个容器。
本教程说明如何在启动时使用lxc命令自动启动LXD容器。

使用lxc命令自动启动LXD容器VM的语法

可以使用lxc工具通过以下语法设置以上讨论的键:

$ lxc config set {vm-name} {key} {value}
$ lxc config set {vm-name} boot.autostart {true|false}
$ lxc config set {vm-name} boot.autostart.priority integer
$ lxc config set {vm-name} boot.autostart.delay integer

如何设置LXD容器在Ubuntu Linux 16.10中启动时启动?

执行以下命令:

$ lxc config set {vm-name} boot.autostart true

设置一个LXD容器名称nginx-vm以在启动时启动

$ lxc config set nginx-vm boot.autostart true

您可以使用以下语法来验证设置:

$ lxc config get {vm-name} boot.autostart
$ lxc config get nginx-vm boot.autostart

输出示例:

true

您可以使用以下语法在容器启动后等待10秒再开始下一个容器:

$ lxc config set nginx-vm boot.autostart.delay 10

最后,通过设置最大值来定义启动容器的顺序。
确保db_vm容器首先启动,然后再启动nginx_vm

$ lxc config set db_vm boot.autostart.priority 100
$ lxc config set nginx_vm boot.autostart.priority 99

在Linux上使用以下bash for loop查看所有值:

#!/bin/bash
echo 'The current values of each vm boot parameters:'
for c in db_vm nginx_vm memcache_vm
do
   echo "*** VM: $c ***"
   for v in boot.autostart boot.autostart.priority boot.autostart.delay 
   do
      echo "Key: $v => $(lxc config get $c $v)"
   done
      echo ""
done

输出示例:

使用bash shell脚本获取自动启动的LXD容器值

另一种方法是使用以下方法获取所有lxd VM

#!/bin/bash
x=$(lxc list -c n | awk '{ print }'  | sed -e '/^$/d' -e '/^NAME/d')
echo 'The current values of each vm boot parameters:'
for c in $x
do
   echo "*** VM: $c ***"
   for v in boot.autostart boot.autostart.priority boot.autostart.delay 
   do
      echo "Key: $v => $(lxc config get $c $v)"
   done
      echo ""
done