[19] 이미지 & 컨테이너 : 무엇이며, 왜 사용하는가?

    728x90
    반응형

     

    이미지 & 컨테이너 : 무엇이며, 왜 사용하는가?

     

     

    이미지(Image)란?

     

    • 애플리케이션의 설계도 / 템플릿
    • 포함하는 것
      • 실행할 코드
      • 필요한 도구와 라이브러리
      • 환경 설정
    • 특징
      • 재사용 가능
      • 공유 가능
      • 변경되지 않는 상태(불변)

     

     

     

    컨테이너( Container )란?

     

    • 이미지를 기반으로 실제 실행되는 인스턴스
    • 실제 동작하는 애플리케이션
    • 특징
      • 독립적인 실행 환경
      • 필요한 모든 것이 포함된 패키지
      • 다른 컨테이너와 충돌 없이 실행

     

     

     

    이미지와 컨테이너의 순서를 살펴보자면

    • Dockerfile 작성
    • 이미지 빌드 ( docker build ) : 이 빌드한 이미지가 애플리케이션의 청사진 / 템플릿, 이걸 Docker Hub등을 통해 다른 사람과 공유도 가능하고, 팀원들이 같은 이미지를 다운받아 사용 가능하다 ( 생성된 이미지는 불변성을 가지고 있어, 한번 생성된 이미지는 수정할 수 없다, 그래서 매 작업마다 새로운 이미지를 생성 )
    • 컨테이너 생성/실행 ( docker run [이미지ID] ) : 이미지를 기반으로 실제 실행되는 환경 생성, 같은 이미지로 여러 개의 컨테이너 실행 가능

    이런 식으로 작업하게되면

     

    • 모든 사람이 정확히 같은 버전의 앱을 실행
    • 버전 관리가 명확함
    • 이전 버전으로 돌아가기 쉬움
    • 배포가 간단해짐

    이러한 장점이 있다. 

     

     

     

    이미지와 컨테이너의 관계 쉬운 비유로 설명하면

     

    • 이미지 = 레시피
      • 요리를 만드는 방법이 적힌 조리법
      • 한 번 작성하면 여러 번 사용 가능
      • 다른 사람과 공유 가능
    • 컨테이너 = 요리
      • 레시피를 따라 실제로 만든 음식
      • 같은 레시피로 여러 번 요리 가능
      • 각각의 요리는 독립적으로 존재

     

     

     

    사용 이점

     

    • 일관성 : 어디서든 동일하게 실행
    • 효율성 : 한 번 만든 이미지로 여러 컨테이너 실행
    • 이식성 : 다른 환경에서도 동일하게 작동

     

     

    이것이 도커의 기본 작동 방식이며, 이를 통해 애플리케이션을 더 쉽게 배포하고 관리할 수 있습니다.

     

     

     

    참조

    https://www.udemy.com/course/docker-kubernetes-2022

     

     

    728x90
    반응형

    댓글