Docker Engine

su-mmer·2022년 9월 20일
0

아묻따 도커 공부

목록 보기
10/18

Docker Engine

  • Docker가 설치된 호스트
  • 도커를 설치하면 컴포넌트가 3개 설치된다.

Docker Daemon

Docker 객체인 이미지와 컨테이너, 볼륨 및 네트워크를 관리하는 백그라운드 프로세스

REST API Server

프로그램이 쓰는 API 인터페이스. 데몬과 통신하고 명령어를 제공할 때 사용

Docker CLI

명령줄 인터페이스. 컨테이너 실행, 중지 및 이미지 제거등에 사용. REST API를 사용하여 데몬과 상호작용


PID

  • 도커는 namespace로 공간 구분

  • PID, network, 프로세스 간 통신, 마운트 및 유닉스 시분할 등이 독립된 namespace에 생성되고 컨테이너가 분리됨.

  • PID 1: 시스템의 다른 모든 프로세스를 시작하는 루트 프로세스

  • pid는 고유하다.

    • 리눅스에서 컨테이너를 생성하면 컨테이너는 독립된 자식 시스템이지만 호스트와 컨테이너가 물리적으로 분리되지는 않는다.
    • 컨테이너 안에서 실행되는 프로세스는 물리적으로 기본 호스트에서 실행된다.
    • 컨테이너의 프로세스는 컨테이너에서 받은 pid, 호스트에서 받은 pid 총 두 개의 pid를 갖는다. => namespace가 분리해 줌
  • 컨테이너는 기본적으로 호스트의 모든 자원을 쓸 수 있고 필요시 호스트에서 제어할 수 있다.

    • docker run --cpu=.5 ubuntu: 호스트 cpu의 최대 50%
    • docker run --memory=100m ubuntu: 최대 100mb

0개의 댓글