개요
구조
Lower Dir 2 생성
tools 디렉토리 생성
# tools 디렉토리 생성
mkdir -p /tmp/tools
Shell
복사
which 명령어 복사
# which 명령어 파일 경로 확인
which which
# /tmp/tools/usr/bin 디렉토리 생성
mkdir -p /tmp/tools/usr/bin
# which 명령어 파일 복사
cp /usr/bin/which /tmp/tools/usr/bin/
# which 명령어 의존 파일 확인 (존재하지 않음)
ldd /usr/bin/which
Shell
복사
rm 명령어 복사
# rm 명령어 복사ㅏ
which rm
# rm 명령어 파일 복사
cp /usr/bin/rm /tmp/tools/usr/bin/
# rm 명령어 의존 파일 확인
ldd /usr/bin/rm
# rm 명령어 의존 파일 경로 생성
mkdir -p /tmp/tools/{lib64,lib/x86_64-linux-gnu}
# rm 명령어 의존 파일 복사
# linux-vdso.so.1는 가상 라이브러리라서 실제로는 존재하지 않는 파일
cp /lib/x86_64-linux-gnu/libc.so.6 /tmp/tools/lib/x86_64-linux-gnu/
cp /lib64/ld-linux-x86-64.so.2 /tmp/tools/lib64/
Shell
복사
OverlayFS
디렉토리 생성
# /tmp/rootfs 하위의 오버레이 구성 디렉토리를 모두 생성
mkdir -p /tmp/rootfs/{container,work,merge}
Shell
복사
오버레이를 마운트할 디렉토리를 생성
마운트
# /tmp 경로 이동
cd /tmp
# 오버레이 마운트
# base image : new_root
# lowerdir : tools
# upperdir : rootfs/container
# workdir : rootfs/work
# mergedir : rootfs/merged
mount -t overlay overlay -o lowerdir=tools:new_root,upperdir=rootfs/container,workdir=rootfs/work rootfs/merge/
# 오버레이 파일 시스템 마운트 확인
mount | grep rootfs
# base image 원본 경로 확인
tree -L 2 new_root/usr
# 오버레이 파일 시스템에 base image 반영 여부 확인
tree -L 2 rootfs/merge/usr
Shell
복사
이미지 변경
# /usr/bin/rm을 삭제
rm /tmp/rootfs/merge/usr/bin/rm
Shell
복사
# 이미지의 쓰기 작업이 이뤄지는 upperdir 확인 시, 삭제는 되어 있지 않고 마킹만 되어 있음
ls /tmp/rootfs/container/usr/bin
Shell
복사