如何在Linux啟動時自動啟動LXD容器
Q:我正在使用基于 LXD(“Linux 容器”)的虛擬機。如何在 Linux 系統中啟動時自動啟動 LXD 容器?
當 LXD 在啟動時運行,你就可以隨時啟動容器。你需要將 boot.autostart 設置為 true。你可以使用 boot.autostart.priority(默認值為 0)選項來定義啟動容器的順序(從***開始)。你也可以使用 boot.autostart.delay(默認值 0)選項定義在啟動一個容器后等待幾秒后啟動另一個容器。
語法
上面討論的關鍵字可以使用 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
如何在 Ubuntu Linux 16.10 中讓 LXD 容器在啟動時啟動?
輸入以下命令:
$ 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
***,通過設置***值來定義啟動容器的順序。確保 dbvm 容器首先啟動,然后再啟動 nginxvm。
$ lxc config set db_vm boot.autostart.priority 100$ lxc config set nginx_vm boot.autostart.priority 99
使用下面的 bash 循環在 Linux 上查看所有配置值:
#!/bin/bashecho 'The current values of each vm boot parameters:'for c in db_vm nginx_vm memcache_vmdoecho "*** VM: $c ***"for v in boot.autostart boot.autostart.priority boot.autostart.delaydoecho "Key: $v => $(lxc config get $c $v) "doneecho ""done
示例輸出:

Fig.01: Get autostarting LXD containers values using a bash shell script






















