温馨提示×

ubuntu overlay怎么添加文件

小樊
42
2026-09-15 22:51:35
栏目: 智能运维

在 Ubuntu 里,“overlay”通常指 OverlayFS(联合文件系统),常用于容器、Live CD、或把只读目录和可写目录叠加在一起。
你问“怎么添加文件”,要看你是在使用 overlay 还是配置 overlay。下面分情况说明。


一、OverlayFS 基本原理(先理解)

OverlayFS 至少有两个目录:

  • lowerdir(只读层,不能改)
  • upperdir(可写层,新增/修改文件在这里)
  • workdir(内部工作目录,必须和 upperdir 同文件系统)
  • merged(挂载后看到的统一视图)

添加文件实际是写到 upperdir,但在 merged 目录操作即可。


二、创建一个 overlay 并添加文件(示例)

1. 准备目录

mkdir -p /tmp/overlay/{lower,upper,work,merged}

2. 在 lower 放一些只读文件

echo "read only" | sudo tee /tmp/overlay/lower/file1

3. 挂载 overlay

sudo mount -t overlay overlay \
  -o lowerdir=/tmp/overlay/lower,upperdir=/tmp/overlay/upper,workdir=/tmp/overlay/work \
  /tmp/overlay/merged

4. 添加文件(重点)

直接在 merged 目录写文件:

echo "new file" | sudo tee /tmp/overlay/merged/newfile

效果:

  • newfile 实际存在 /tmp/overlay/upper/newfile
  • lower 里的 file1 仍然可见
  • lower 本身没被修改

三、Docker 中的 overlay(常见场景)

如果你是用 Docker:

  • 添加文件 = 构建镜像或运行容器时写文件
  • 容器可写层就是 overlay 的 upperdir

示例:

FROM ubuntu
RUN echo "hello" > /etc/myfile

或在容器里直接:

docker exec -it container bash
echo "test" > /root/testfile

四、常见问题

1. 不能往 lowerdir 加文件?

对,lower 是只读的,只能往 upper 或 merged 加。

2. 卸载 overlay

sudo umount /tmp/overlay/merged

3. 开机自动挂载

/etc/fstab

overlay /mnt/merged overlay lowerdir=/data/lower,upperdir=/data/upper,workdir=/data/work 0 0

五、如果你指的是别的“overlay”

Ubuntu 里也可能是:

  • overlay network(Docker 网络)
  • Ubuntu live overlay(casper)
  • kubelet overlay

可以告诉我你具体是在:

  • 容器?
  • 自定义系统?
  • Live USB?
  • Kubernetes?

我可以给你更精确的添加文件方法。

0