이미지, 레이어
Last updated
Last updated
컨테이너 실행에 필요한 파일과 config 등을 포하는 것. 상태값을 가지지 않고 변하지 않는다.
컨테이너는 이미지를 실행한 상태.
1개 이미지에서 여러개의 컨테이너를 생성할 수 있다.
컨테이너의 상태가 바뀌거나 삭제되더라도 이미지는 변하지 않고 그대로 남아있다.
예) 우분투 이미지는 우분투를 실행하기 위한 모든 파일을 가지고 있다.
예) mysql 이미지는 debian을 기반으로 mysql을 실행하는 데 필요한 파일과 명령어, 포트정보 등을 가지고 있다.
이미지는 컨테이너를 실행하기 위한 모든 정보를 가지고 있으므로 이미지만 있으면 여러 파일을 설치하고 컴파일할 필요가 없다.
이미지는 url 방식으로 관리하며 태깅이 가능하다.
도커 이미지는 컨테이너를 실행하기 위한 모든 정보를 담고있기 때문에 용량이 커질 수 밖에 없다. 1개의 이미지 용량이 커지는 것을 해결하기 위해 레이어(layer)라는 개념을 사용한다.
이미지는 여러개의 읽기 전용(read-only) 레이어로 구성한다.
이미지에 파일을 추가하거나 수정하면 새로운 레이어가 생성된다.
우분투 이미지가 레이어 A + B + C
의 조합이라면 우분투에 설치된 nginx의 레이어는 A + B + C + nginx
조합이 된다. 우분투 위에 nginx를 설치하고 nginx의 뒷단에서 도는 webapp 을 이미지로 만든다면 레이어는 A + B + C + nginx + webapp
조합이 된다.
webapp 의 레이어를 수정하면 A, B, C, nginx 레이어를 제외한 새로운 레이어만 수정하고 다운로드 할 수 있기 때문에 효율적으로 이미지를 관리할 수 있다.
출처