如何在 Linux 启动时自动启动 LXD 容器 VM
我们始终可以在 LXD 启动时启动容器。您所要做的就是将 boot.autostart 设置为 true。您可以使用 boot.autostart.priority(默认值为 0)选项定义启动容器的顺序(从最高优先级开始)。接下来,我们可以使用该选项定义容器启动后等待的秒数,然后再启动下一个容器boot.autostart.delay。本页介绍如何使用 lxc 命令在启动时自动启动 LXD 容器。
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 不 |
要求 | Linux 终端 |
类别 | 路西法 |
先决条件 | Linux 上的 lxd |
操作系统兼容性 | 阿尔玛 •阿尔派• Arch • Debian • Fedora • Linux • Mint • openSUSE • pop!_os • RHEL • Rocky • Stream • SUSE • Ubuntu |
预计阅读时间 | 3 分钟 |
使用 lxc 命令自动启动 LXD 容器 VM 的语法
可以使用 lxc 工具设置上面讨论的键,语法如下:
$ lxc config set {container-name} {key} {value}
$ lxc config set {container-name} boot.autostart {true|false}
$ lxc config set {container-name} boot.autostart.priority integer
$ lxc config set {container-name} boot.autostart.delay integer
如何设置 LXD 容器在 Ubuntu Linux 16.10 中启动时启动?
键入以下命令:
$ lxc config set {container-name} boot.autostart true
设置 LXD 容器名称“nginx-vm”以在启动时启动
$ lxc config set nginx-vm boot.autostart true
您可以使用以下语法验证设置:
示例输出:
$ lxc config get {container-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在 Linux 上
使用以下 bash for 循环查看所有值:
$ lxc config set db_vm boot.autostart.priority 100
$ lxc config set nginx_vm boot.autostart.priority 99
#!/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
图 01:使用 bash shell 脚本获取自动启动的 LXD 容器值
#!/bin/bash # #x=$(lxc list -c n | awk '{ print $2}' | sed -e '/^$/d' -e '/^NAME/d') #A better way instead of using the sed and awk # x=$(lxc list --format csv -c n) 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
结论
您了解了如何使用 lxc 命令在 Linux 中自动启动 LXD 容器。每个 LXD 容器的重要变量如下:
- boot.autostart– 设置为 true 时,LXD 启动时始终启动容器。另一个可能的值是 false。
- boot.autostart.delay– 容器启动后到启动下一个容器之前等待的秒数(整数)(默认为 0)。
- boot.autostart.priority– 以什么顺序启动容器(从最高开始)。换句话说,LXD 容器“c1”有 10,而“c2”有值 5,那么 c1 将首先启动。
- 在 Ubuntu 16.04 LTS 上安装 LXD 容器管理程序
- 如何在 Fedora Linux 26 上安装和设置 LXC(Linux 容器)
- 在KVM或Xen虚拟机下设置LXD容器
- 列出 LXD(Linux 容器)中的 VM 映像
- 升级由 Ubuntu/Debian 或 CentOS Linux 驱动的 LXD 容器
- 在 Linux 启动时自动启动 LXD 容器
- 重命名 LXD / LXC 容器的命令
- 在配置启动时在 Linux 容器 (LXD) 实例上运行命令
- 在云实例启动时,使用 shell 脚本中的 LXD(Linux 容器)创建 VM
- 将 LXD VM 移动/迁移到 Linux 上的另一台主机
- Fedora 安装并设置 LXD
- CentOS 7.x 安装并设置 LXD 服务器
- 在 Ubuntu 18.04 LTS 上安装 LXD 纯容器管理程序
- 使用 lxc 命令为 LXD 创建快照
- 在 CentOS/RHEL 8 上设置并安装 LXD
- Ubuntu 20.04 LTS 安装并设置 LXD
- 完整备份和恢复 LXD 容器
- 禁用 LXD 桥上的防火墙和 NAT 规则
- 使用 lxc 删除或移除 LXD 容器
- Linux 文件系统错误:事务失败解决方案
- Ubuntu 22.04 LTS 设置 LXD
- Debian 11 设置 LXD