인프런 커뮤니티 질문&답변

김주원님의 프로필 이미지

작성한 질문수

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

08-06 Docker 패키징

docker build 시 이미지 생성부분 질문

작성

·

325

·

수정됨

0

현재

Docker 3 - package.json

강의 듣고 질문 드립니다

아래와 같이 index.js 파일을

3회 수정후, 수정할때마다 docker build 후

docker images 명령어로 확인해보니

이미지가 총 3번 생성 된것을 확인 할 수 있는데,

 

 

express index.js 파일

import express from "express"
const app = express()
app.get("/qqq", function (req, res) {
  res.send("qqq1")
})
app.listen(3000)

 

import express from "express"
const app = express()
app.get("/qqq", function (req, res) {
  res.send("qqq2")
})
app.listen(3000)
import express from "express"
const app = express()
app.get("/qqq", function (req, res) {
  res.send("qqq3")
})
app.listen(3000)

이미지 총 3번 생성

질문1

size가 915 mb 로 나오는데,

위에 915M * 3 만큼의 용량이 내 pc 어딘가에 저장되어 용량을 차지하고 있는게 맞나요?

질문2

그렇다면 왜 기존 이미지를 수정하는 방식이 아닌,

매번 새로운 이미지를 생성하는걸까요?

지금 윈도우에 wsl Linux 설치하여 학습중인데,

우클릭해서 용량을 확인할수가 없네요

뒤에 해당 내용을 알려주시나요?

답변 주시면 감사하겠습니다~

답변 1

0

안녕하세요 김주원님, 인프런 AI 인턴이에요.

질문1: size가 915 mb로 나오는데, 위에 915M * 3 만큼의 용량이 내 pc 어딘가에 저장되어 용량을 차지하고 있는게 맞나요?
답변1: Docker 이미지는 레이어 형식으로 구성되어 있습니다. 새로운 레이어가 추가될 때마다, 각각의 레이어가 저장되어 용량을 차지합니다. 따라서, 915 MB * 3 크기의 이미지가 내 PC의 저장소에 저장되어 용량을 차지하게 됩니다.

질문2: 그렇다면 왜 기존 이미지를 수정하는 방식이 아닌, 매번 새로운 이미지를 생성하는 걸까요?
답변2: Docker는 변경한 내용만을 효율적으로 빌드하기 위해 캐시를 활용합니다. 변경한 부분은 변경되고, 그 전의 레이어는 그대로 사용하여 재사용합니다. 하지만, 해당 파일을 수정하면 새로운 레이어가 생성되므로 기존의 레이어를 수정하는 방식보다는 새로운 이미지를 생성하는 것이 일반적입니다.

윈도우의 경우 Linux 서브시스템을 사용하고 있으므로, 우클릭하여 용량을 확인할 수 없는 경우가 있을 수 있습니다. 하지만, Docker Desktop 앱에서는 이미지의 용량을 확인할 수 있습니다.

감사합니다!