0%

超低配Arm机器使用lxc容器

适用于大部分低配arm机器,如N1,甚至是410随身WiFi(需要有带有线网卡拓展坞,无线网卡无法开网桥),实现在低配机器上轻松AIO!部分代码取自Cooip!

更新apt并安装lxc

1
2
apt update && apt upgrade && apt install lxc -y
lxc-checkconfig

看到有一长溜输出即可!

手动配置网桥

1
nmtui

编辑连接
1

添加网桥
2

添加桥接设备
3

选择类型为有线网卡
4

输入有线网卡名
5

开启开机自动连接
6

配置一下有线网卡的连接
7

关闭有线网卡的自动连接,避免开机时和网桥冲突。
8

修改lxc桥接配置
修改为”false”

1
nano /etc/default/lxc-net

9

重启设备

1
reboot

建立第一个模版lxc容器

1
lxc-create --name template --template download -- --dist debian --release bookworm --arch arm64 --server mirrors.tuna.tsinghua.edu.cn/lxc-images

会从清华源远程下载最新debian12的rootfs建立lxc容器

编辑lxc容器配置文件

1
echo > /var/lib/lxc/template/config && nano /var/lib/lxc/template/config

复制下方配置文件,粘贴到打开的文件中,按需修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
lxc.include = /usr/share/lxc/config/common.conf
lxc.arch = linux64

# Container specific configuration
lxc.apparmor.profile = generated
lxc.apparmor.allow_nesting = 1
lxc.rootfs.path = dir:/var/lib/lxc/template/rootfs
lxc.uts.name = template
lxc.start.auto = 1
lxc.start.delay = 15
lxc.group = onboot

# 虚拟网卡1
lxc.net.0.type = veth
lxc.net.0.link = lxcbr0
lxc.net.0.flags = up
lxc.net.0.hwaddr = 36:b0:b9:cf:2e:4g
lxc.net.0.name = eth0

# 虚拟网卡2 每添加一块虚拟网卡需改动一下mac使其不同,可加n个网卡
#lxc.net.1.type = veth
#lxc.net.1.link = lxcbr0
#lxc.net.1.flags = up
#lxc.net.1.hwaddr = 36:b0:b9:cf:2e:4f
#lxc.net.1.name = eth1

# 挂载tun,如需搭建tailscale、mihomo之类需要依赖tun的可移除下方两条注释
#lxc.cgroup2.devices.allow = c 10:200 rwm
#lxc.mount.entry = /dev/net/tun dev/net/tun none bind,create=file

按下ctrl+x,再按y,回车,就保存并退出了。

启动并进入容器,初始化一下通用基本配置

1
lxc-start template && lxc-attach template 

初始化配置看这篇文章

配置完以后按ctrl + d退出容器

然后停止模版容器

1
lxc-stop template

基于模版复制容器,自定义一下名称

一定要模板处于停止状态才能复制!!!

1
lxc-copy -n template -N newname

按需修改新容器配置文件

或者不改启动lxc直接玩,反正主机名和mac地址在复制中会改好

设置服务文件开机自启,debian为例

1
2
lxc.start.auto = 1
lxc.group = onboot

10

在lxc配置文件中添加了以上配置,此lxc应该能够开机自启,如果还是不能开机自启,那么再配置以下自启服务。

1
nano /etc/systemd/system/lxc-start.service

复制下方配置文件粘贴进去

1
2
3
4
5
6
7
8
[Unit]
Description="LXC autostart for lxc user"

[Service]
ExecStart=/usr/bin/lxc-autostart --all

[Install]
WantedBy=default.target

按下ctrl+x,再按y,回车,就保存并退出了。

设置开机自启

1
2
3
4
systemctl daemon-reload
systemctl enable lxc-start.service
systemctl start lxc-start.service
systemctl status lxc-start.service

lxc容器常用命令

1
2
3
4
5
lxc-attach name  #进入lxc
lxc-start name #启动lxc
lxc-stop name #停止lxc
lxc-destroy name #销毁lxc
lxc-ls name #列出所有lxc,可加-f查看详情

lxc相关配置文件路径

1
2
3
4
5
6
7
8
# lxc 自启等相关默认配置
/etc/default/lxc
# lxc 网络相关默认配置
/etc/default/lxc-net
# lxc 配置文件模板配置
/etc/lxc/default.conf
# 所有lxc所在目录
/var/lib/lxc/