도커 & CI (1)

김동하·2024년 4월 16일
0

도커란?

  • 컨테이너를 통해 응용프로그램을 더 쉽게 만들고, 배포할 수 있도록 설계된 도구
  • 컨테이너 기반의 가상화 플랫폼

컨테이너란?

  • 다양한 프로그램, 실행 환경을 컨테이너로 추상화하여 동일한 인터페이스로 통일
  • AWS, Azure, Google colud 등에서 어디서든 실행 가능하게 함

도커 이미지란?

  • 코드, 런타임, 시스템 도구 등 응용 프로그램을 실행하는 데 필요한 모든 것을 포함한 가볍고 독립적인 소프트웨어 패키지
  • 도커 이미지는 런타임에 컨테이너가 되고, 도커 컨테이너의 경우 도커 엔진이 실행될 때 이미지가 컨테이너가 된다
  • 컨테이너는 소프트웨어를 환경으로부터 격리시켜 개발과 스테이징 차이없이 균일하게 작동하도록 보장

도커 플로우

  1. CLI 입력

docker run hellow-world 를 도커 클라이언트에 입력했다고 하자.

그러면 도커 서버로 전송이 되고 'hello-world'라는 이미지가 캐시 저장소에 있는지 찾게 된다.

  1. 도커 허브

이미지가 없다면 도커 허브에서 이미지를 가져온다. 그후 도커 서버에서 이미지를 통해 프로그램을 실행하게 된다.

도커와 VM

  • 하이퍼 바이저 기반의 가상화
    • VM이라는 독립적 가상 환경의 서버 이용 가능
    • 하이퍼 바이저는 호스트 시스템에서 다수의 게이트 OS를 구동할 수 있게 하는 소프트웨어
    • 네이티브 하이퍼 바이저와 호스트형 하이퍼 바이저로 나뉨
    • VM은 독립된 가상 하드웨어 자원을 할당 받음
  • 도커
    • VM과 공통점으로는 기본 하드웨어에서 격리된 환경 내에 애플리케이션을 배치하는 방법
    • 차이점으로는 격리된 환경을 얼마나 격리시키는지 차이

도커 컨테이너를 격리할 수 있는 이유

  • C Group
    • CPU, 메모리, Network Bandwith 등 프로세스 그룹위 시스템 리소스 사용량을 관리 -> 어떤 어플이 사용량이 너무 많으면 그 어플을 C Group에 넣어 CPU, 메모리 사용 제한
  • 네임스페이스
    • 하나의 시스템에서 프로세스를 격리시킬 수 있는 가상화 기술

이미지

  • 이미지는 명령어와 실행 파일의 스냅샷을 가짐
  • 실행 명령을 입력하면 컨테이너의 하드디스크에 스냅샷을 넣어줌
  • 명령어로 컨테이너에 넣어줌 -> 컨테이너가 실행되면 명령어가 실행됨
  • 도커 서버와 환경은 리눅스 환경임

** 따라하며-배우는-도커-ci 수강 중

profile
프론트엔드 개발

0개의 댓글