作者 | Vivek Gite
譯者 | geekpi
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 上檢視所有[1]配置值:
#!/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
示例輸出:
Fig.01: Get autostarting LXD containers values using a bash shell script
via: https://www.cyberciti.biz/faq/how-to-auto-start-lxd-containers-at-boot-time-in-linux/
作者:Vivek Gite[3] 譯者:geekpi 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出