개발 ON
  • [Network | Docker] 용어 및 개념
    2024년 06월 30일 19시 35분 51초에 업로드 된 글입니다.
    작성자: 이주여이
    • 도커
      • 컨테이너를 다루는 도구(컨테이너 런타임)
      • 컨테이너 기반 가상화 플랫폼으로 애플리케이션 개발 / 배포 / 실행을 단순화한 오픈소스 프로젝트
      • 가상화 기술 중 하나인 컨테이너를 이용하여 서버 환경을 구성
      • 기존에는 가상 머신을 이용해 각각의 가상 서버로 환경을 구성하였지만 도커는 호스트 os와 커널을 공유하며 각각의 애플리케이션을 독립적인 컨테이너로 구성하여 관리함
      • 이미지라는 단위로 애플리케이션을 관리함
    • 쿠버네티스 - 컨테이너 분산 배치 / 상태 관리 / 컨테이너 구동 환경 관리
    • 컨테이너
      • 도커 엔진에서 사용하는 기본 단위이자 도커 엔진의 핵심
      • 격리된 공간에서 프로세스가 동작하는 것
      • 이미지로 컨테이너 생성 시 해당 이미지 목적에 맞는 파일 시스템과 격리된 자원 / 네트워크를 사용할 수 있는 독립 공간이 생성되고 이것은 도커 컨테이너가 된다.
      • (예) 웹서버 도커 이미지로 여러 개 컨테이너 생성 시 생성된 컨테이너 개수만큼 웹 서버가 생성되고 외부에 웹 서비스를 사용하는 데 사용할 수 있다.
    • 이미지
      • 도커 엔진에서 사용하는 기본 단위이자 도커 엔진의 핵심
      • 가상 머신 생성 시 사용하는 iso 파일과 비슷한 개념
      • 컨테이너를 생성하기 위한 뼈대
      • 컨테이너 실행에 필요한 파일 / 설정 값들을 포함하고 있는 ~
      • 상태 값을 가지지 않고 변하지 않는다.(read only)
      • read only 레이어로 구성되어 있으며 파일이 추가 / 수정될 경우 새로운 레이어가 생성된다.
        1. ubuntu: A + B + C
        2. ubuntu + nginx: A + B + C + nginx
        3. ubuntu + nginx + webapp: A + B + C + nginx + source
        4. 3에서 webapp 수정 시: A + B + C + nginx + source(v2)
          1. source(v2) 레이어만 새로 다운로드 받으면 됨(효율적 관리 가능)
      • 새로운 서버가 추가되면 미리 만들어놓은 이미지를 다운로드 받아 컨테이너를 생성하기만 하면 된다. 한 서버에 수십, 수백대의 서버도 문제없다!
      • 기본적으로 도커 이미지는 docker hub나 docker registry에 저장소를 직접 만들어 관리할 수 있으며 추가적으로 github packages에 한 프로젝트 내에서도 배포가 가능하다. 혹은 harbor와 같은 저장소를 사용할 수도 있다.
      • 저장소 이름/이미지 이름:태그
        • 저장소(repository) - 저장소 이름은 이미지가 저장된 장소를 의미한다. 이름이 명시되지 않은 이미지는 도커에서 기본적으로 제공하는 도커 허브의 공식 이미지를 뜻한다. 이미지 생성 시 저장소 이름을 명시할 필요는 없으므로 생략 가능하다.
        • 이미지 이름 - 이미지 이름은 생략할 수 없다.
        • 태그 - 이미지 버전 관리 / 리버전 관리 시 사용되며 태그 생략 시 도커 엔진에서는 이미지 태그를 latest로 인식한다.

    참고 레퍼런스

    삼성 클라우드 쿠버네티스 알아보기 1편: 쿠버네티스와 컨테이너, 도커에 대한 기본 개념

    초보를 위한 도커 안내서 - 도커란 무엇인가?

    댓글