LXC(Linux Containers)是核心級容器化技術,提供輕量級虛擬化環境。本文解析橋接網路、儲存後端遷移、AppArmor 安全配置三大核心議題。
/etc/default/lxc 設定 USE_LXC_BRIDGE="true"lxcbr0,指派 10.0.3.1/24,DHCP 範圍 10.0.3.2-254dnsmasq 提供 DHCP/DNS 服務,監聽 lxcbr0
# 靜態 IP
lxc.net.0.type = veth
lxc.net.0.link = lxcbr0
lxc.net.0.flags = up
lxc.net.0.ipv4.address = 10.0.3.100/24
lxc.net.0.ipv4.gateway = 10.0.3.1
# 直接掛載實體介面 (macvlan)
lxc.net.0.type = macvlan
lxc.net.0.link = eth0
lxc.net.0.mode = bridge
systemctl stop lxc
mkdir -p /srv/lxclib /srv/lxccache
mv /var/lib/lxc /srv/lxclib
mv /var/cache/lxc /srv/lxccache
ln -s /srv/lxclib /var/lib/lxc
ln -s /srv/lxccache /var/cache/lxc
systemctl start lxc
mkdir -p /srv/lxclib /srv/lxccache
cat >> /etc/fstab <
優點:檔案系統層面隔離、支援配額、備份快照獨立管理。
| 指令 | 用途 |
|---|---|
apparmor_status | 查看載入的配置檔、模式、進程狀態 |
aa-complain /path/to/bin | 將程式置入 complain 模式(僅記錄不阻擋) |
aa-enforce /path/to/bin | 強制執行模式(阻擋違規存取) |
aa-complain /etc/apparmor.d/* | 所有配置檔轉為 complain |
aa-enforce /etc/apparmor.d/* | 所有配置檔轉為 enforce |
apparmor_parser -a /etc/apparmor.d/profile | 載入單一配置檔 |
apparmor_parser -r /etc/apparmor.d/profile | 重新載入(熱更新) |
systemctl reload apparmor | 重新載入所有配置檔 |
# /etc/apparmor.d/lxc/lxc-default-with-nesting
#include
profile lxc-container-default-with-nesting flags=(attach_disconnected,mediate_deleted) {
#include
# 允許巢狀容器掛載
mount fstype=cgroup -> /sys/fs/cgroup/**,
mount fstype=proc -> /proc/**,
capability sys_admin,
capability sys_resource,
}
套用至容器:lxc.apparmor.profile = lxc-container-default-with-nesting
精通 LXC 網路模型、儲存遷移與 AppArmor 精細權限控制,可構建安全、高效、可維運的輕量級虛擬化平台。