제일 중요한 구분 하나
Image 랑 container 헷갈리는 게 새 Docker 사용자가 헤매는 1순위 이유야. 머리에 박아:
Image = read-only template (class, blueprint, artifact).
Container = 실행 중인 인스턴스 + 그 위에 writable layer (object, 살아 있는 것).
Container = 실행 중인 인스턴스 + 그 위에 writable layer (object, 살아 있는 것).
Image 하나, container 여러 개
Image 는 한 번 빌드해. Container 는 필요한 만큼 띄워. 각 container 는 자기만의 writable layer 를 가져 — 런타임 상태 (로그, 임시 파일, 마운트된 volume 에 안 들어가는 모든 거) 가 거기 들어가.
Container 는 설계상 ephemeral
Writable layer 는 container 랑 같이 죽어. docker rm 이 layer 를 지워. 이건 feature 야 — state 를 외부화 (volume = data, registry = image) 하도록 강제하니까. 그게 state 가 있어야 할 자리야.
Container 가 없어졌다고 중요한 데이터 잃었으면, 버그는 데이터를 외부화 안 한 거야. Container 가 너무 약한 게 아니야.