DevOps/Docker

[Docker] Docker 란? (chroot, 생명주기 등)

yubi5050 2022. 8. 16. 11:23

Docker 란?

도커는 컨테이너(*애플리케이션 및 해당 구동 환경을 격리한 공간) 기반의 가상화 플랫폼

 

기존 가상 머신 vs Docker 

기존의 가상 머신

  • Hypervisior에 의해 GuestOS 생성
  • 라이브러리, 커널 등 완전히 독립된 공간과 시스템 자원 할당 받아 사용
  • 대표 툴 : VirtualBox, VMware

 

도커 컨테이너

  • 프로세스 단위의 격리 환경(chroot, namespace, cgroup 등), 호스트의 커널 공유
  • 라이브러리 및 실행 파일만 할당 하여 가벼움
  • 애플리케이션 운영 표준화 및 어디서나 안정적으로 실행 가능

가상머신 vs 도커

Docker의 chroot

chroot (Change root)

  • root directory(A)의 기준을 실행할 애플리케이션의 하위 directory (B)로 변경하는 역할
  • root directory 변경시 변경된 하위 diretory (B)가 루트 역할
  • 신규 root directory(B) 상위 directory (A)에 접근 불가하고 자연스럽게 격리된 공간이 만들어짐

 

chroot 관련 참고 문헌

https://www.44bits.io/ko/post/change-root-directory-by-using-chroot

 

컨테이너 기초 - chroot를 사용한 프로세스의 루트 디렉터리 격리

chroot는 프로세스의 루트 디렉터리를 변경하는 리눅스 시스템콜/명령어입니다. 루트를 변경함으로써 아주 기초적인 단계의 컨테이너를 구현해볼 수 있습니다. chroot는 아주 단순한 프로그램입니

www.44bits.io

 

Docker Image와 Container

Docker Image

  • 서비스(애플리케이션) 운영에 필요한 서버 프로그램, 라이브러리, 컴파일 된 실행 파일 묶은 형태
  • 소스. 의존성 패키지 등이 같이 명시 된 Dockerfile로 이미지 생성
  • Dockerhub를 통한 이미지 pull/push 버전 관리 가능

 

Docker container

  • 이미지에 명시된 정보를 통해 해당 응용 프로그램 자체를 패키징 & 캡슐화 하여 프로세스를 동작시키는 기술
  • 각각의 컨테이너는 독립적으로 실행됨

 

 

 

Docker 생명주기

출처 : https://kin3303.tistory.com/16