DevOps

도커 볼륨은 Commit 했을 때 이미지에 반영될까?

도커 Volume을 사용하면 도커가 관리하는 호스트 파일 시스템의 일부에 데이터가 저장된다.

볼륨용 컨테이너를 사용해도 되고, 직접 호스트의 디렉토리와 매핑해서 볼륨으로 사용해도 된다.


도커 이미지에서의 볼륨을 사용해도 된다. 이때는 자동으로 호스트의 임시 디렉토리와 매핑된다. 어떤 디렉토리와 매핑되는지는 알 필요 없다. 자세한 내용은 5. Docker Volume 사용 - OpenShift - rockPLACE Wiki 여기에도 나와있다.

 

그렇다면, 오늘의 궁금증인 도커 볼륨은 Commit을 했을 때 변경사항이 이미지에 반영될까?

Docker Container에서 Volume으로 지정된 영역에 저장된 데이터는 Docker Commit을 이용하여 변경된 부분을 새로운 이미지로 저장하여도 이미지에 반영되지 않는다.

Docker는 Layer로 이루어진 Union File System을 사용하는데 Volume에 지정된 부분은 Union File System을 통하지않고 Host의 파일시스템에 바로 저장되기 때문이다.