ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Kubernetes] 도커란?
    Kubernetes 2022. 1. 7. 00:05
    728x90

    지난 포스팅에서 컨테이너에 대해서 간략히 알아봤다.

    컨테이너는 그 전부터 쓰여왔는데 도커로 인해 널리 알려지게 되었다.

     

    도커란?

    애플리케이션을 패키징, 배포, 실행하기 위한 플랫폼이다.

    애플리케이션 소스코드 뿐만 아니라 실행환경, 라이브러리 등을 통채로 패키지화 시키는게 포인트이다.

    실행환경을 포함하여 패키지화 시키면 앞서 말했던 개발환경과 프로덕트 환경이 다른 문제를 방지할 수 있다. (실행환경까지 패키지화하였으니 두 환경은 거의 같은 환경이기 때문)

    구성요소

    • 이미지
      애플리케이션과 환경을 패키지화 한 것
      파일 시스템과 실행해야할 실행파일의 경로 같은 메타 데이터도 포함
    • 레지스트리
      도커 이미지를 저장하고, 다른 사람과 이미지를 공유할 수 있는 저장소
      레지스트리에 이미지를 등록해두면 다른 사람들도 해당 이미지를 가져오고, 애플리케이션을 실행시킬 수 있다.
    • 컨테이너
      실제로 애플리케이션이 실행되는 격리 환경

    절차

    1. 개발자의 개발
    2. 이미지 생성
    3. 레지스트리 푸시
    4. 애플리케이션이 실행될 머신에서 도커를 통해 이미지를 가져와 격리된 컨테이너를 생성
    5. 컨테이너 내에서 실행 명령어 실행

    이미지 레이어

    도커 이미지는 이미지 레이어로 구성된다. 도커 이미지는 기존의 도커 이미지 위에 쌓을 수 있으며, 상속 개념이라고 봐도 무방하다.

    따라서 특정 이미지 위에 쌓인 이미지를 배포할 때에는 수정사항에 대해서만 배포하므로 가볍다. 뿐만 아니라 하나의 도커 이미지 레이어는 동일 호스트에 한 번만 저장되므로 저장 공간을 절약할 수 있다. 예를 들어 A 이미지를 확장한 B, C 이미지가 있을 때 B, C 이미지 레이어를 pull 받으면 A 이미지는 1개만 저장된다.

     

    강조

    도커 자체가 프로세스 격리를 제공하지 않는다.

    컨테이너의 격리는 리눅스의 기능인 네임스페이스와 컨트롤 그룹으로 이루는 것이다.

    댓글

Designed by Tistory.