DevBoi

[Docker] 이미지 비밀 레이어 본문

Infra/[K8S & Docker]

[Docker] 이미지 비밀 레이어

HiSmith 2023. 6. 23. 21:43
반응형

이미지 비밀레이어라는게 존재한다.

이미지는 한개를 받더라도, 레이어는 여러개를 받기 때문에 여러개의 커맨드 라인이 나오게 된다.

이미지는 여러개의 레이어로 나눠서 저장이 된다.

만약에 이미지 A에서 사용중인 레이어들이 있는데 이미지B를 다운받게 되면, 없던 D만 다운을 받게 된다.

 

한 이미지에 대해 여러 레이어가 있고, 같은 레이어라도 다른 레이어를 사용할 수 있고

같은 레이어를 공유할 수도있다.

 

그러면 레이어에 대한 확인을 해보자

도커 이미지는 docker images를 통해서, 확인 가능하다.

 

또한 도커 이미지에 대한 분석 확인은 이렇게 할 수 있다.

docker inspect <image-name>

 

 

도커 이미지 저장소 위치를 확인 해보자

docker-info를 치면 도커에 대한 상세 내용이 나온다.

Docker Root 경로를 보게 되면, 도커가 설치된 경로를 알 수 있다.

또한 Storage Driver overlay2로 알 수 있다.

도커의 저장 장소를 가보자

뭐 이런식으로 해당 경로에 가면, overlay2 ~ network까지 다양한 저장이 되고있다.

지금 컨테이너에 대한 정보가 아래와 같이 있다.

nginx를 풀받아서 이미지를 살펴보자

만든시간, 컨테이너 Id, 환경 변수, cmd를 통해서 프로세스를 실행하는 내용까지 적혀있다.

해당 layer 하위에 있는 것들은 이미지를 구성하는 레이어들이다.

 

ls -R imagedb를 하면 해당 하위의 내용들이 회귀 되면서 보인다.

해쉬값으로 저장하기떄문에 위의 레이어의 데이터와는 다른 값이 나온다.

ImageDb와 동일하게 layerDB가 있는데, 하위 내용이 있다.

 

이미지에는 이미지 디비 + 레이어 디비가 있고 이는 overlay2에 대한 내용을 가지고있다.

결과적으로

Image에는 imageDB + layerDb가 있는데

Imagedb -> layerdb의 정보가   layererdb -> overlay2 의 정보가 들어가있다

 

사실 도커에서 주로 설정을 해주기 떄문에 불필요한 지식이라고 생각할 수 있긴한다.

무튼 많은 이미지를 많이 받게 되면, Overlay2쪽에 저장 공간을 많이 차지하게 된다.

 

du -sh 로 해당 경로에 대한 사용공간을 확인할 수 있고, 해당 도커는 1.7기가 정도 사용하고있는 것으로 볼 수 있다.

해당 명령어를 타고타고 가서 해당 overlay2의 하위 디렉토리의 저장공간을 확인할 수 있다.

 

반응형