萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux LXC 容器技術核心概念與儲存/網路/安全配置實戰

LXC(Linux Containers)是核心級容器化技術,提供輕量級虛擬化環境。本文解析橋接網路、儲存後端遷移、AppArmor 安全配置三大核心議題。

網路架構:lxcbr0 橋介面

  • 啟用條件:/etc/default/lxc 設定 USE_LXC_BRIDGE="true"
  • 啟動時自動建立 lxcbr0,指派 10.0.3.1/24,DHCP 範圍 10.0.3.2-254
  • 背景執行 dnsmasq 提供 DHCP/DNS 服務,監聽 lxcbr0
  • 容器預設掛載至 lxcbr0,獲得私有 IP,透過 NAT 存取外部網路

自訂網路配置(/var/lib/lxc/<容器>/config)


# 靜態 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

儲存後端遷移:移動 /var/lib/lxc 至獨立磁碟

方法一:符號連結(簡單、即時生效)


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

方法二:bind mount(持久化、fstab 管理)


mkdir -p /srv/lxclib /srv/lxccache
cat >> /etc/fstab <

優點:檔案系統層面隔離、支援配額、備份快照獨立管理。

安全強化:AppArmor 配置檔管理

核心指令

指令用途
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重新載入所有配置檔

容器專用 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 vs Docker 定位差異

  • LXC:系統容器,完整 init 系統、多進程、適合傳統應用遷移、OS 級虛擬化
  • Docker:應用容器、單一進程、映像層疊、不可變基礎設施、CI/CD 友善
  • 生產環境多採 Kubernetes + containerd (CRI-O);LXC 適合需完整 OS 環境的 Legacy 應用

精通 LXC 網路模型、儲存遷移與 AppArmor 精細權限控制,可構建安全、高效、可維運的輕量級虛擬化平台。

copyright © 萬盛學電腦網 all rights reserved