如何在Ubuntu Overlay中安装软件
Overlay文件系统(OverlayFS)是一种联合文件系统,通过下层(Lowerdir,只读基础层)、**上层(Upperdir,可写修改层)和合并层(Merged,最终视图)**实现文件系统的层叠。在Ubuntu中,Overlay常用于容器(如Docker)或系统Overlay配置(如overlayroot),以下是两种常见场景下的软件安装方法:
Docker默认使用overlay2(OverlayFS的改进版)作为存储驱动,容器内的软件安装直接作用于容器的可写层(Upperdir),无需额外配置。
sudo apt update && sudo apt install docker.io)。ubuntu:22.04),作为Overlay的下层:docker pull ubuntu:22.04
/目录挂载到主机的/mnt/overlay/merged(便于观察合并层内容):docker run -it --name my-ubuntu -v /mnt/overlay/merged:/mnt ubuntu:22.04 /bin/bash
vim为例):apt update && apt install -y vim
安装完成后,vim会存储在容器的**可写层(Upperdir)**中,不会影响基础镜像(Lowerdir)。vim --version,确认软件已安装;退出容器后,可通过ls /mnt/overlay/merged/usr/bin查看合并层中的软件文件。若需将整个系统根文件系统配置为Overlay(如实现系统层叠),需通过overlayroot工具实现,步骤如下:
overlayroot及依赖:sudo apt update && sudo apt install overlayroot
/etc/overlayroot.conf,设置下层(基础系统)、上层(可写层)和合并层路径:sudo nano /etc/overlayroot.conf
添加以下内容(示例):[general]
enabled = yes
upperdir = /etc/overlayroot/upper
workdir = /etc/overlayroot/work
lowerdir = /
lowerdir:基础系统(只读),通常为/(根目录)。upperdir:可写层,用于存储系统修改(如安装的软件)。workdir:OverlayFS内部使用的临时目录。upperdir和workdir:sudo mkdir -p /etc/overlayroot/{upper,work}
overlayroot模块并启用服务:sudo modprobe -r overlayroot
sudo modprobe overlayroot
sudo systemctl enable overlayroot
upperdir中。安装软件(以curl为例):sudo apt update && sudo apt install -y curl
安装完成后,curl会存储在/etc/overlayroot/upper目录中,重启系统后仍保留。overlay2存储驱动,无需手动配置OverlayFS,适合快速部署和测试。upperdir)空间有限,需定期清理无用文件(如apt缓存:sudo apt clean)。