더북(TheBook)

6.1 컨테이너 속 데이터가 사라지는 이유

도커 컨테이너에도 단일 드라이브로 된 파일 시스템이 있다. 이 파일 시스템의 내용은 이미지 속 파일로부터 만들어지는데, 우리도 이 과정을 이미 배운 적이 있다. Dockerfile 스크립트에서 COPY 인스트럭션을 사용해 파일을 이미지로 복사하면, 이 이미지로 실행한 컨테이너에도 같은 경로에 복사된 파일이 있다. 그리고 앞서 도커 이미지는 여러 개의 레이어 형태로 저장된다고 설명했었다. 컨테이너의 디스크 역시 이 이미지 레이어를 순서대로 합쳐 만든 가상 파일 시스템이다.

모든 컨테이너는 독립된 파일 시스템을 갖는다. 같은 이미지에서 실행한 여러 개의 컨테이너는 처음에는 디스크의 내용이 모두 같지만, 그중 한 컨테이너에서 애플리케이션이 파일을 수정해도 다른 컨테이너나 이미지는 영향을 받지 않는다. 디스크에 데이터를 쓰는 컨테이너를 여럿 실행하고 출력을 확인해 보면 이를 확인할 수 있다.

실습 터미널 창을 열고 같은 이미지로부터 컨테이너를 두 개 실행하라. 이 이미지에 담긴 애플리케이션은 컨테이너 속 파일에 무작위 숫자를 쓰는 기능을 한다.

docker container run --name rn1 diamol/ch06-random-number

docker container run --name rn2 diamol/ch06-random-number
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.