如何在Linux啟動(dòng)時(shí)自動(dòng)啟動(dòng)LXD容器
Q:我正在使用基于 LXD(“Linux 容器”)的虛擬機(jī)。如何在 Linux 系統(tǒng)中啟動(dòng)時(shí)自動(dòng)啟動(dòng) LXD 容器?
當(dāng) LXD 在啟動(dòng)時(shí)運(yùn)行,你就可以隨時(shí)啟動(dòng)容器。你需要將 boot.autostart
設(shè)置為 true
。你可以使用 boot.autostart.priority
(默認(rèn)值為 0
)選項(xiàng)來定義啟動(dòng)容器的順序(從***開始)。你也可以使用 boot.autostart.delay
(默認(rèn)值 0
)選項(xiàng)定義在啟動(dòng)一個(gè)容器后等待幾秒后啟動(dòng)另一個(gè)容器。
語(yǔ)法
上面討論的關(guān)鍵字可以使用 lxc
工具用下面的語(yǔ)法來設(shè)置:
$ 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 容器在啟動(dòng)時(shí)啟動(dòng)?
輸入以下命令:
$ lxc config set {vm-name} boot.autostart true
設(shè)置一個(gè) LXD 容器名稱 “nginx-vm” 以在啟動(dòng)時(shí)啟動(dòng)
$ lxc config set nginx-vm boot.autostart true
你可以使用以下語(yǔ)法驗(yàn)證設(shè)置:
$ lxc config get {vm-name} boot.autostart
$ lxc config get nginx-vm boot.autostart
示例輸出:
true
你可以使用下面的語(yǔ)法在啟動(dòng)容器后等待 10 秒鐘后啟動(dòng)另一個(gè)容器:
$ lxc config set nginx-vm boot.autostart.delay 10
***,通過設(shè)置***值來定義啟動(dòng)容器的順序。確保 dbvm 容器首先啟動(dòng),然后再啟動(dòng) nginxvm。
$ lxc config set db_vm boot.autostart.priority 100
$ lxc config set nginx_vm boot.autostart.priority 99
使用下面的 bash 循環(huán)在 Linux 上查看所有配置值:
#!/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