컨테이너, 도커 기본 개념

  • 컨테이너? 데이터나 프로그램을 격리시키는 조립형 창고
    • 컨테이너는 자유롭게 옮길 수 있다(도커 엔진A → 도커 엔진B: easy)
  • 이런 컨테이너를 다루는 기술이 Docker
    • (주로) 서버에서 사용되는 소프트웨어
    • Docker 제약사항: 리눅스
  • 어떤 컨테이너를 만들건데? 이걸 정하는 게 바로 이미지
  • 근데 왜 필요함?
    • 프로그램을 동작시키려면 이걸 실행시킬 실행 환경(런타임)이 필요함.
    • 그뿐만 아니라 라이브러리들도 런타임마다 제각각임.
    • 또 어떤 프로그램끼리는 같은 디렉토리를 공유할 수도 있음. 프로그램 여러 개를 동시에 가동시키는 데 디렉토리를 공유하고 있었다..? 그건 재앙..

가상화 기술 vs 도커

  • 가상화 기술은 가상의 물리 서버 → 실질적으로 하나의 물리 서버나 마찬가지.
  • 도커는 운영체제 일부 기능을 호스트 컴퓨터(물리 서버)에 의존

도커 동작 원리

  • 물리서버의 리눅스 운영체제 위에, 도커 엔진 위에, 컨테이너.
  • 이 컨테이너 안에는 위에서 설명한 프로그램이나 데이터가 위치하고 또 리눅스 운영체제 비스무리한 게 위치한다.
    • 비스무리? 원래 운영체제는 커널+주변 영역으로 구성됨
      • 커널: 하드웨어 다루는 애 / 주변 영역: 프로그램의 내용을 커널에 전달하는 애
      • 컨테이너에는 주변 영역만 들어 있음. 원래 컨테이너는 개별 공간 마냥 분리되어 있는데 그럼 하드웨어 장비를 어떻게 써..그래서 주변 영역이 소통 창고 같은 느낌으로 있는 거임.
      • 컨테이너 속 프로그램의 작업 → 컨테이너 속 리눅스 OS 주변 영역이 의견 수렴 후 전달 → 도커 엔진이 컨테이너들의 의견 수렴 후 전달 → 커널 수렴
    • 컨테이너에는 주변 영역만 있기 때문에 이 덕분에 도커는 “가벼움”

도커 이미지

  • 이미지는 컨테이너를 만드는 빵틀 같은 거임. 그래서 똑같은 컨테이너 여러 개 찍어내듯 만들어낼 수 있음
  • 근데 빵틀과 달리 개조하기 겁나 쉬움
  • 다른 도커 엔진으로 공유하는 것도 쉬움
  • 아예 공유하라고 만들어 놓은 곳이 도커 허브임(hub.docker.com)

도커 생애주기

  • 도커는 사실 일회용품 같은 거임.
    • 설치된 소프트웨어 업데이트 필요하면 일일이 해주는 게 아니라, 걔네들 설치된 거 다 폐기 시키고 그냥 새로운 버전이 설치된 이미지로 컨테이너 쫙~ 뽑아서 쓰는 거임
  • 근데, 그럼 그 안에 있는 데이터는 우짬? 그래서 데이터는 도커 설치된 물리 서버의 디스크에 마운트해 따로 저장하긴 함. 이러면 컨테이너 간 데이터 공유도 편함.

 

 

 


출처: 

 
그림과 실습으로 배우는 도커 & 쿠버네티스
이 책은 컨테이너 기술이 어렵게 느껴지는 엔지니어나 백엔드 기술에 자신이 없는 분들을 위한 도커 입문서입니다. 자세한 그림과 친절한 실습을 통해 리눅스 지식이나 서버 구축 경험이 없어도 컨테이너와 도커, 쿠버네티스에 대한 지식을 쉽게 이해할 수 있습니다. 도커의 개념부터 동작 방식, 명령어 사용법, 컨테이너 운용, 나아가 도커 컴포즈와 쿠버네티스까지, 컨테이너 기술에 대한 배경지식이 전혀 없는 분들도 도커와 쿠버네티스의 개념과 기초 사용법을 익힐 수 있도록 안내합니다. 도커나 쿠버네티스를 배우고 싶은 초보자라면 철저하게 입문자의 눈높이에 맞춘 이 책으로 도커의 세계에 첫발을 내디뎌 보세요.
저자
오가사와라 시게타카
출판
위키북스
출판일
2022.04.05

 

 

 

+ Recent posts