'docker 변화'에 해당되는 글 1건

반응형

기본적으로 docker 이미지에 속하는 layer들은 읽기 전용이기 때문에 절대 변하지 않는다.

그렇기 때문에 해당 컨테이너에서 변경된 사항들은 최상위 레이어에 기록함으로써, 아래 레이어들에는 어떠한 영향도 주지 않습니다. 이로 인해 컨테이너에서 파일을 삭제한다고 하더라도 새로운 컨테이너에서는 기존 이미지 상태 그대로인 것입니다.

 

그런데 기존 이미지에서 항상 특정 파일이 제거되거나 추가가 되어야 하는 경우가 있을 수 있다.

이럴 때에는 docker commit 명령어를 통해 그러한 내용이 적용된 새로운 이미지를 생성할 수 있다.

 

 

1. 이미지를 통해 컨테이너 생성 후 파일 생성과 삭제 진행

 

 

 

2. 기존 이미지에서 변화된 내용 확인 및 저장

 - docker diff 명령어 : 지정된 컨테이너가 이미지에서 바뀐 사항 조회

 - docker commit 명령어 : docker diff 명령어를 통해 확인된 변경 사항을 적용시킨 이미지를 생성하는 방법

 

 

3. 변경사항이 적용되었는지 확인

 - 기존 이미지인 nginx로 컨테이너를 생성하였을 때에는 tar 파일이 존재하고 /tmp 내에 FILE_CREATE 파일이 없음을 확인

 - 변경사항이 저장된 without_tar 태그의 nginx로 컨테이너를 생성하였을 때에는 tar가 존재하지 않으며, /tmp 파일 내에 FILE_CREATE 파일이 존재함을 확인

 - docker commit 명령어를 통해서는 파일의 변화에 대해서만 적용이 가능하며, 파일 내 내용 수정에 대해서는 적용되지 않음을 확인함.

 

-----------------------------

참고 ) https://www.44bits.io/ko/post/how-docker-image-work

반응형
블로그 이미지

rootable

,