도커란?
포스트
취소

도커란?

도커와 쿠버네티스

이번 프로젝트를 진행하며 쿠버네티스에 대한 이해가 필요해져 사내 스터디를 진행한 적이 있다(아마 6~7월경에 마무리 했던것 같다). 당시 작성해둔 PT자료를 보며 복습도 하고 내 스스로 정리를 다시 해보고자 블로깅을 한다. P.S 이 글은 "시작하세요! 도커/쿠버네티스" 책을 보고 공부한 내용입니다.

도커란 무엇인가?

도커(Docker)란 리눅스 컨테이너를 기반으로 애플리케이션을 컨테이너로서 좀 더 쉽게 사용할 수 있게 만든 오픈소스 프로젝트이다.

가상화 머신과 Docker Container 비교

가상화 머신과 Docker Container

  • VM
    • 가상머신마다 전용 운영체제(Guest OS)를 별도로 가진다.
    • 하이퍼바이저를 거쳐야 하기 때문에 성능의 손실이 발생할 수 있다.
    • VM을 통해 제공하는 애플리케이션과 함께 운영체제 및 관련 도구들이 포함되어 공간을 많이 차지할 수 있다.
    • 운영체제의 패치가 일어날 경우 Host OS는 물론 Guest OS 역시 별도로 패치해야 한다.
  • Docker Container
    • 운영체제는 Host OS를 따르며 리눅스 자체 기능을 사용해 프로세스 단위의 격리된 환경을 만든다.
    • 애플리케이션을 구동하는 데 필요한 라이브러리, 실행 파일만 존재 하기 때문에 비교적 적은 용량을 차지한다.
    • Host OS만 패치 해주면 된다.

Docker Image

도커 이미지

  • 이미지란 컨테이너 실행에 필요한 파일, 설정값들을 포함한 계층 구조의 바이너리 파일이다.
  • 이미지는 절대 변하지 않는다.
  • 예를 들어, 배포한 컨테이너를 통해 상태나 정보를 바꾸고 삭제하더라도 이미지에는 아무 영향을 미치지 않는다.
  • 이는 동일한 구성의 애플리케이션을 한 서버든, 여러 서버든 똑같이 제공할 수 있음을 의미한다.

Docker image의 계층구조

도커 이미지 계층구조

  • 도커 이미지는 관리의 효율성을 위하여 layer라는 개념을 사용한다.
  • 예를 들어, 어떤 이미지 상에서 특정 레이어만의 변화만 일어난다면, 해당 레이어만 새로 다운이 진행되게 된다.
  • 컨테이너를 기반으로 새로운 이미지를 만들 때도, R/W layer의 내용만 상위 layer로 추가되어 사용자가 추가한 내용에 대해서만 쉽게 관리할 수 있다.

도커의 이점

  • 독립성: Host OS, 다른 컨테이너와 독립된 공간이기 때문에 외부 환경의 변화에 독립적이다.
  • 쉬운 배포: 컨테이너 내부에서 소스 등의 여러 작업을 마친 뒤 배포하기 위해서는 이미지만 만들어 전달하면 된다.
  • MSA: 도커는 여러 애플리케이션이 독립적으로 구성되고 여러 환경이나, 언어에 구애 받지 않기 때문에 MSA에 적합하다고 할 수 있다.

다음 예고

다음 주에는 실제 도커를 실행하고 볼륨을 생성 하는 등 실제 사용하는 실습 방법으로 돌아오겠습니다~!



Reference

시작하세요! 도커 쿠버네티스 Yes24! https://velog.io/@ckstn0777/도커란-무엇인가

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.