Watch at Ease세상을 읽고, 일상의 답을 찾다.

기술 · 실용 가이드

Docker mount 뒤 파일이 사라졌나요? 어떤 filesystem이 가리는지 증명하세요

Compose model을 render하고 live mount graph와 같은 image의 no-mount baseline을 비교한 뒤 rebuild·copy·delete 하세요.

Compose model에서 mount graph, baseline, acceptance까지의 흐름도.
원본 일러스트: copy 전에 visible filesystem을 증명하세요. Watch at Ease

빈 directory는 image 파일 삭제를 증명하지 않습니다. bind, named volume, nested mount 또는 잘못 해석된 Compose source가 image path를 가릴 수 있습니다.

data와 model을 보존하고 runtime mounts를 검사한 뒤 같은 digest의 no-mount container와 비교하세요. 원인을 분류한 뒤에만 수리하고 recreate까지 검증하세요.

1. model과 data evidence 고정

Compose, environment, cwd, context, image digest를 저장하고 source를 read-only로 열어 hash와 permission을 기록하세요.

docker compose config의 source, target, nested collision을 저장하세요.

2. live mount graph 읽기

docker inspect에서 Type, Source, Destination, RW, propagation을 읽으세요.

daemon host와 -v / --mount의 missing-source 차이를 확인하세요.

3. 같은 image의 no-mount baseline 비교

같은 digest로 의심 mount 없는 disposable container를 만들어 target을 확인하세요.

bind source나 volume의 파일, hash, owner, mode와 nested target을 비교하세요.

4. mechanism 분류 후 수리

bind는 merge하지 않고 새 empty volume은 기본적으로 한 번 copy-up하며 reused volume은 기존 내용을 유지합니다.

Source가 예상과 다르면 reseed 대신 base/project path를 고치세요.

5. persistence 증명

persistent path를 install tree와 분리하고 seed는 idempotent versioned migration으로 만드세요.

첫 시작과 두 번째 restart/recreate, hash, ownership, write persistence, wrong path 무변경을 검증하세요.

bind, volume copy-up, wrong path 비교표.
원본 일러스트: 비슷한 증상도 mechanism에 따라 수리가 다릅니다. Watch at Ease