더북(TheBook)

컨테이너 파일 시스템은 컨테이너와 같은 생애주기를 갖는다. 컨테이너가 삭제되면 이 컨테이너의 기록 가능 레이어와 여기서 수정된 데이터도 함께 삭제된다. 도커를 사용하면 컨테이너 삭제를 밥 먹듯이 하게 된다. 실무에서는 새 이미지를 빌드하고 오래된 컨테이너를 삭제한 다음 새 이미지에서 실행한 컨테이너로 대체하는 방법으로 애플리케이션을 업데이트한다. 이 과정에서 기존 컨테이너에 있는 수정된 데이터는 모두 손실된다. 새 컨테이너는 이미지에서 받은 파일만 갖고 있기 때문이다.

애플리케이션이 계산 비용이 큰 계산 결과처럼 몇 가지 일시적 데이터를 캐싱만 하는 경우라면 새 컨테이너가 빈 캐시를 갖고 시작하더라도 문제가 없다. 하지만 그렇지 않은 경우라면 아마 재앙이 일어날 것이다. 컨테이너로 데이터베이스를 실행해 사용했는데 데이터베이스 버전을 업데이트했더니 모든 데이터가 사라졌다고 생각해 보자.

도커는 이런 상황도 감안해 만들어졌다. 컨테이너의 가상 파일 시스템은 여전히 이미지 레이어와 기록 가능 레이어로 구성되지만, 몇 가지 추가할 수 있는 요소가 더 있다. 도커 볼륨(Docker volume)마운트(mount)다. 이들 요소는 컨테이너와는 별개의 생애주기를 갖는다. 그러므로 컨테이너가 대체돼도 지속돼야 할 데이터를 저장할 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.