Docker 컨테이너와 Docker 이미지의 차이점

David Mbochi Njonge 2024년2월15일
  1. Docker의 레이어 이해
  2. Docker 컨테이너와 이미지의 차이점
  3. 결론
Docker 컨테이너와 Docker 이미지의 차이점

이 자습서에서는 각각을 구성하는 구성 요소와 이를 다르게 만드는 기능을 보여줌으로써 컨테이너와 이미지의 차이점을 배웁니다.

Docker의 레이어 이해

사용자 지정 이미지를 생성하기 위해 일반적으로 기본 이미지를 사용하여 사용자 지정 이미지를 생성하는 지침을 정의하는 Dockerfile을 사용합니다. Dockerfile에서 이미지를 빌드하는 데 사용할 수 있는 지침은 다음과 같습니다.

FROM node:16.17.0-alpine
WORKDIR /app
ADD package*.json ./
RUN npm install
ADD . .
CMD node index.js

Docker 이미지는 서로 위에 쌓인 레이어를 사용하여 생성됩니다. Dockerfile의 명령 작업이 파일을 추가하거나 제거할 수 있는 경우 새 계층이 스택에 추가됩니다.

Dockerfile에 정의된 모든 명령이 새 계층을 생성하는 것은 아닙니다. 예를 들어 CMD 명령은 컨테이너 내에서 실행할 명령과 관련된 메타데이터를 이미지에 추가합니다.

또한 Dockerfile을 사용하여 생성된 레이어는 마지막 레이어를 제외하고는 읽기 전용입니다.

컨테이너를 생성하면 새로운 얇은 레이어가 생성됩니다. 이 레이어와 이전 레이어의 차이점은 이 레이어에서 파일을 읽고 쓸 수 있다는 것입니다.

컨테이너를 실행한 후 새 파일 쓰기, 기존 파일 수정 및 파일 삭제와 같은 작업은 얇은 읽기-쓰기 계층에서 이루어집니다. 다음은 이미지의 읽기 전용 레이어와 컨테이너의 읽기-쓰기 레이어가 포함된 스택을 보여주는 이미지입니다.

이미지 및 컨테이너 레이어

Docker 컨테이너와 이미지의 차이점

이전 섹션에서 우리는 스택의 최상위 레이어가 컨테이너에서 사용하는 얇은 읽기-쓰기 레이어이고 다른 레이어는 사용자 지정 이미지를 생성하는 데 사용되는 읽기 전용 레이어임을 확인했습니다.

이것이 Docker 컨테이너와 이미지의 주요 차이점입니다. 컨테이너에서 파일을 추가하거나 제거하는 모든 변경 사항은 특정 컨테이너의 얇은 읽기-쓰기 계층에 적용됩니다.

컨테이너를 삭제하면 연결된 레이어가 삭제됩니다. 그러나 기본 이미지는 삭제되지 않습니다.

생성된 각 컨테이너에는 읽기-쓰기 계층이 있어 기본 이미지를 공유하면서도 데이터 상태를 유지할 수 있습니다. 다음 이미지는 여러 컨테이너가 기본 이미지를 공유하는 방법을 보여줍니다.

기본 이미지를 공유하는 컨테이너

결론

이 튜토리얼에서는 레이어를 사용하여 도커 컨테이너와 도커 이미지를 구별하는 방법을 배웠습니다. 우리는 이미지가 Dockerfile이라는 파일을 사용하여 생성되고 파일의 각 명령이 다른 레이어 위에 쌓인 읽기 전용 레이어를 형성한다는 것을 배웠습니다.

마지막으로 최상위 계층은 컨테이너가 파일 변경 사항을 추가하거나 수정하는 데 사용하는 읽기-쓰기 계층이라는 것을 배웠습니다.

David Mbochi Njonge avatar David Mbochi Njonge avatar

David is a back end developer with a major in computer science. He loves to solve problems using technology, learning new things, and making new friends. David is currently a technical writer who enjoys making hard concepts easier for other developers to understand and his work has been published on multiple sites.

LinkedIn GitHub

관련 문장 - Docker Container