Section2. 도커 기본

2022. 1. 2. 00:10·Tech/Docker
  • 도커란 무엇인가
    • 컨테이너 기반의 가상화 플랫폼
    • 컨테이너를 사용하여 응용 프로그램을 더 쉽게 만들고, 배포하고, 실행할 수 있도록 설계된 도구
    • 프로그램 설치 간편. 서버, 패키지 버전, 운영체제 등에 좀 덜 의존적임
  • 컨테이너란 무엇인가
    • 다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스에 제공하여 프로그램의 이동,배포 및 관리를 단순하게 함
    • 코드와 모든 종속성을 패키지화하여 응용 프로그램이 한 컴퓨터 환경에서 다른 컴퓨팅 환경으로 빠르고 안정적으로 실행되도록 하는 소프트웨어 표준 단위
  • 도커 이미지란 무엇인가
    • 도커에서 특정 프로세스를 실행하는데 필요한 모든 설정이나 종속성(소스 코드, 라이브러리, 컴파일 된 실행파일 등)을 묶은 형태
    • 이미지를 이용해 컨테이너를 생성한다
  • 도커 컨테이너란 무엇인가
    • 이미지의 인스턴스로, 컨테이너를 이용해 프로그램을 실행한다. 
  • Docker run hello-world
    • 도커 클라이언트 -> 도커 서버 (이미지 캐시 보관 장소에 이미지가 있나요? -> 캐시 보관 장소에 hello-world 가 없으면 도커 허브에서 가져오기) -> 도커 허브 (이미지들을 보관)
  • 도커 사용 시 흐름
    • 도커 CLI에 커맨드를 입력한다.
    • 도커 서버(도커 Daemon)이 그 커맨드를 받아서 이에 따라 이미지가 있다면 컨테이너를 실행하고, 없다면 허브에서 가져와서 이미지를 생성하고 컨테이너를 실행한다.
  • 도커와 기존의 가상화 기술과의 차이를 통한 컨테이너 이해
    • 가상화 기술 나오기 전 : 한 대의 서버를 하나의 용도로만 사용 (하나의 OS, 하나의 프로그램)
    • 하이퍼바이저 기반의 가상화 출현 
      • 논리적으로 공간을 분할하여 VM이라는 독립적인 가상 환경의 서버 이용 가능
      • VM 내부에서 실행되는 모든 것은 호스트OS, 하이퍼바이저와 독립된다.
      • 하이퍼 바이저 : 호스트 시스템에서 다수의 게스트 OS를 구동할 수 있게 하는 SW, 하드웨어를 가상화하면서 하드웨어와 각각의 VM을 모니터링하는 중간 관리자 
      • 호스트형 하이퍼 바이저 : 하드웨어 자원을 VM 내부의 게스트 OS에 에뮬레이트 하는 방식으로 오버헤드가 크나, 게스트 OS에 대한 제약이 없고 구현이 다소 쉽다.
    • 도커 컨테이너와 가상머신
      • 하이퍼바이저 방식과 달리 게스트 OS가 존재하지 않고, 동일한 커널을 공유하면서 리눅스 커널의 기능을 이용해 격리된 환경을 제공한다.
      • 동일한 커널을 공유하여 프로세스를 호스트 OS에서 확인 가능하다. 
      • VM과 비교했을 때 컨테이너는 하이퍼바이저와 게스트 OS가 필요하지 않고, 호스트 OS에 실행 패키지인 이미지만 배포하여 어플리케이션을 실행할 수 있어 더 가볍다.
    • 컨테이너에서의 격리 기능은 ? 리눅스 커널 이용 (C Group, 네임스페이스)
      • C group : 프로세스 그룹의 시스템 리소스 사용량을 관리(CPU, 메모리 사용 제한 등 사능)
      • 네임 스페이스 : 하나의 시스템에서 프로세스를 격리시킬 수 있는 가상화 기술. 별개의 독립된 공간을 사용하는 것처럼 격리된 환경을 제공하는 경량 프로세스 가상화 기술
  • 이미지로 컨테이너 만들기
    • 이미지 : 프로그램을 실행하는데 필요한 설정, 종속성 등 모든 것을 포함
      • 시작 시 실행 될 명령어, 파일 스냅샷 (디렉토리나 파일 카피한 것)
    • 이미지로 컨테이너 만드는 순서, 컨테이너에서 파일이 실행되는 순서
      • 도커 클라이언트에서 docker run <이미지> 입력
      • 파일 스냅샷을 하드디스크에 넣고 시작 시 실행 될 명령어를 넣어준다 -> 컨테이너가 실행될 때 실행 파일 시작 명령어가 실행된다-> 커널을 통해서 실행파일을 작동시킨다 -> 컨테이너 안에 실행파일이 동작한다
  • C group과 네임스페이스를 도커 환경에서 쓸 수 있는 이유
    • 내부적으로는 아래와 같이 리눅스 VM이 설치되어 도커 클라이언트와 서버는 리눅스 환경에서 돌아간다
리눅스 커널
리눅스 VM
맥 OS
하드웨어

 

 본 내용은 인프런 강의 ‘따라하면서 배우는 도커와 CI환경’ 을 듣고 정리한 내용입니다.

 

'Tech > Docker' 카테고리의 다른 글

Section 7. 간단한 어플을 실제로 배포해보기 (개발 환경 부분)  (0) 2022.01.02
Section 6. Docker Compose  (0) 2022.01.02
Section 5. 도커를 이용한 간단한 Node.js 어플 만들기  (0) 2022.01.02
Section 4. 직접 도커 이미지를 만들어 보기  (0) 2022.01.02
Section 3. 기본적인 도커 클라이언트 명령어 알아보기  (0) 2022.01.02
'Tech/Docker' 카테고리의 다른 글
  • Section 6. Docker Compose
  • Section 5. 도커를 이용한 간단한 Node.js 어플 만들기
  • Section 4. 직접 도커 이미지를 만들어 보기
  • Section 3. 기본적인 도커 클라이언트 명령어 알아보기
sooomni
sooomni
  • sooomni
    Dev Log
    sooomni
  • 전체
    오늘
    어제
    • 분류 전체보기 (20)
      • Tech (20)
        • TIL (2)
        • Worklog (4)
        • DB (4)
        • Docker (6)
        • Cloud (3)
        • 책 리뷰 (0)
        • 이펙티브자바 (1)
      • 이직기 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    cloud
    NoSQL
    SQL
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
sooomni
Section2. 도커 기본
상단으로

티스토리툴바