Skip to content

Commit 929296c

Browse files
committed
overlayfs example
1 parent a015891 commit 929296c

File tree

3 files changed

+52
-27
lines changed

3 files changed

+52
-27
lines changed

docker/README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,9 @@ Only works for new containers: <https://stackoverflow.com/questions/28302178/how
202202

203203
### GUI apps
204204

205-
https://stackoverflow.com/questions/16296753/can-you-run-gui-apps-in-a-docker-container
205+
Easiest method: https://stackoverflow.com/questions/31446661/build-a-full-ubuntu-desktop-docker-image/51122106#51122106
206+
207+
More manual method: https://stackoverflow.com/questions/16296753/can-you-run-gui-apps-in-a-docker-container
206208

207209
sudo docker run --net=host
208210

overlay.sh

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#!/usr/bin/env bash
2+
set -eux
3+
4+
# Global setup.
5+
top=overlay.tmp
6+
rm -rf "$top"
7+
mkdir -p "$top"
8+
cd "$top"
9+
10+
# Create the filesystems.
11+
mkdir lower
12+
mkdir upper
13+
mkdir overlay
14+
dd if=/dev/zero of=lower.ext4 bs=1024 count=102400
15+
dd if=/dev/zero of=upper.ext4 bs=1024 count=102400
16+
mkfs -t ext4 lower.ext4
17+
mkfs -t ext4 upper.ext4
18+
sudo mount lower.ext4 lower
19+
sudo mount upper.ext4 upper
20+
sudo chown "$USER:$USER" lower
21+
sudo chown "$USER:$USER" upper
22+
printf 'lower-content' > lower/lower-file
23+
# upper and work must be on the same filesystem.
24+
mkdir upper/upper
25+
mkdir upper/work
26+
printf 'upper-content' > upper/upper/upper-file
27+
# Work must be empty.
28+
# echo 'work-content' >> upper/work/work-file
29+
30+
# Make the lower readonly to show that that is possible:
31+
# writes actually end up on the upper filesystem.
32+
sudo mount -o remount,ro lower.ext4 lower
33+
34+
# Create the mount.
35+
sudo mount \
36+
-t overlay \
37+
-o lowerdir=lower,upperdir=upper/upper,workdir=upper/work \
38+
none \
39+
overlay \
40+
;
41+
printf 'overlay-content' > overlay/overlay-file
42+
ls lower upper/upper upper/work overlay
43+
44+
# Cleanup.
45+
sudo umount overlay
46+
sudo umount upper
47+
sudo umount lower

overlayfs.md

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,6 @@
11
# OverlayFS
22

3+
<https://askubuntu.com/questions/109413/how-do-i-use-overlayfs/1075564#1075564>
34
<https://askubuntu.com/questions/699565/example-overlayfs-usage>
45

5-
Basic:
6-
7-
mkdir -p lower upper work overlay
8-
sudo mount -t overlay -o lowerdir=lower,upperdir=upper,workdir=work none overlay
9-
touch lower/a upper/b overlay/c
10-
ls lower upper overlay
11-
sudo umount overlay
12-
13-
Outcome:
14-
15-
lower:
16-
a
17-
18-
overlay:
19-
a b c
20-
21-
upper:
22-
b c
23-
24-
Preparing to override root:
25-
26-
mkdir -p lower lower/upper lower/work overlay
27-
sudo mount -t overlay -o lowerdir=lower,upperdir=lower/upper,workdir=lower/work none lower
28-
touch lower/a lower/upper/b
29-
ls lower lower/upper
30-
sudo umount overlay
6+
[overlayfs.sh](overlayfs.sh)

0 commit comments

Comments
 (0)