[Docker] Image

Image

도커 이미지는 레이어로 구성된다. pull을 통해 받아온 이미지에 별도의 수정을 가해 이미지를 생성하는 경우를 예로 들어보자.

1
2
3
4
5
6
//ubuntu layers
"Layers": [
"sha256:f2fa9f4cf8fd0a521d40e34492b522cee3f35004047e617c75fadeb8bfd1e6b7",
"sha256:48dc77435ad5c63ea60d91e6ad4828c70e7e61755f99982b0505abb8aaa00872",
"sha256:3da511183950aa462f667f43fcda0bb5484c5c73eaa94fcd0a94bbd4db396e1c"
]
1
2
3
4
5
6
7
//ubuntu_fixed1 layers
"Layers": [
"sha256:f2fa9f4cf8fd0a521d40e34492b522cee3f35004047e617c75fadeb8bfd1e6b7",
"sha256:48dc77435ad5c63ea60d91e6ad4828c70e7e61755f99982b0505abb8aaa00872",
"sha256:3da511183950aa462f667f43fcda0bb5484c5c73eaa94fcd0a94bbd4db396e1c",
"sha256:a942eebb7c2ebe841275265f241ec4a21d4d769cffb86e973f72ed00741c5ac0"
]
1
2
3
4
5
6
7
8
//ubuntu_fixed2 layers
"Layers": [
"sha256:f2fa9f4cf8fd0a521d40e34492b522cee3f35004047e617c75fadeb8bfd1e6b7",
"sha256:48dc77435ad5c63ea60d91e6ad4828c70e7e61755f99982b0505abb8aaa00872",
"sha256:3da511183950aa462f667f43fcda0bb5484c5c73eaa94fcd0a94bbd4db396e1c",
"sha256:a942eebb7c2ebe841275265f241ec4a21d4d769cffb86e973f72ed00741c5ac0",
"sha256:eb2fd7d91e88ff7ae7655af8118f1f35317f2a555ab09037a889d2333197691c"
]

이와 같이 도커에 이미지가 3개이고 이미지 크기가 각각 197MB라 나와도 차지하는 공간이 3 197MB가 아니게 된다. 이미지를 커밋할 때 컨테이너에서 변경된 사항만 새로운 레이어로 저장하기 때문에 실제 이미지 크기는 197MB + fixed1 파일 크기 + fixed2 파일 크기가 된다. 또한 생성한 이미지를 사용중인 컨테이너가 있을때는 이미지 삭제가 불가능하며 -f를 통해 강제로 삭제하는 경우 *Dangling Image문제가 생기게 된다. 즉 실제 이미지는 삭제되지 않고 이름만 삭제된다.

Author: Song Hayoung
Link: https://songhayoung.github.io/2020/07/20/Docker/image/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.