도커스터디 Week01

황동근·2023년 1월 28일
0

Docker

목록 보기
1/4

소개

  • 도커 이론을 학습하며 원리를 이해하고 적절하게 도커 사용
  • 교재
    • 시작하세요! 도커/쿠버네티스
  • 커리큘럼
    • 1주차 도커란?
    • 2주차 도커 엔진 (이미지와 컨테이너)
    • 3주차 도커 엔진(도커 이미지, 도커 데몬)
    • 4주차 도커 스웜
    • 5주차 도커 컴포즈
  • 일정
    • 매주 일요일 21시
  • Ref

1장. 도커란?

도커(Docker)

  • 리눅스 컨테이너에 여러 기능을 추가함으로써 애플리케이션을 컨테이너로서 좀 더 쉽게 사용할 수 있게 만들어진 오프소스 프로젝트
  • Go 언어로 작성
  • 관련 프로젝트
    • 도커 컴포즈
    • 레지스트리
    • 도커 허브
    • 도커 엔진
      • 컨테이너를 생성하고 관리하는 주체
      • 컨테이너를 제어할 수 있고 다양한 기능 제공

1.1 가상 머신과 도커 컨테이너

가상 머신

  • 하이버파이저를 이용해 여러 개의 운영체제를 하나의 호스트에서 생성해 사용하는 방식
  • 각 가상 머신은 우분투, CentOS 등 운영체제가 설치되어 사용
  • 게스트 운영체제
    • 하이버파이저에 의해 생성되고 관리는 운영체제
    • 각 게스트 운영체제는 다른 게스트 운영체제와는 완전히 독립된 공간과 시스템 자원을 할당받아 사용
  • 가상화 툴
    • VirtualBox
    • VMware
  • 장점
    • 완벽한 운영체제를 생성 가능
  • 단점
    • 자원을 가상화하고 독립된 공간을 생성하는 작업은 하이퍼바이저를 반드시 거치기 때문에 일반 호스트에 비해 성능 손실
    • 가상 머신은 게스트 운영체제를 사용하기 위한 라이브러리, 커널 등을 전부 포함하기 때문에 가상 머신을 배포하기 위한 이미지로 만들었을 때 이미지의 크기가 큼

도커 컨테이너

  • 가상화된 공간을 생성하기 위해 리눅스의 자체 기능인 chroot, namespace, cgroup을 사용함
  • 프로세스 단위의 격리 환경을 만듦
  • 컨테이너에 필요한 커널은 호스트의 커널 공유
  • 컨테이너 안에는 애플리케이션을 구동하는데 필요한 라이브러리 및 실행 파일만 존재하기 때문에 컨테이너를 이미지로 만들었을 때 이미지의 용량 또한 가벼움
  • 배포하는 시간이 빠르며, 가상화된 공간을 사용할 때의 성능 손실이 거의 없음

1.2 도커를 시작해야 하는 이유

애플리케이션의 개발과 배포

  • 호스트 OS
    • 서버를 부팅할 때 실행되는 운영체제
  • 도커 컨테이너
    • 호스트 OS 위에서 실행되는 격리된 공간
    • 컨네이터 내부에서 수많은 소프트웨어를 설치하고 설정 파일을 수정해도 호스트 OS에 영향을 끼치지 않음
    • 독립된 개발 환경을 보장
  • 도커 이미지
    • 컨테이너 내부에서 작업을 마친 뒤 운영 환경에서 배포하려면 일종을 패키지로 만들어 운영 서버에 전달
    • 운영 서버에서 새롭게 패키지를 설치할 필요 없음
    • 각종 라이브러리 등으로 인한 의존성 문제 해결
    • 커널을 포함하고 있지 않기 때문에 이미즈 크기가 크지 않음
    • 이미지 내용을 레이어 단위로 구성하며, 중복되는 레이어를 재사용

애플리케이션의 독립성과 확장성

  • 모놀리스 애플리케이션
    • 소프트웨어의 여러 모듈이 상호 작용하는 로직을 하나의 프로그램 내에서 구동시키는 방식
    • 소규모 서비스에서 적합
    • 소프트웨어 자체의 확장성과 유연성이 줄어든다는 단점 존재
  • 마이크로서비스
    • 여러 모듈을 독립된 형태로 구성
    • 언어에 종속되지 않고 변화에 빠르게 대응
    • 각 모듈의 관리가 쉬워짐
  • 컨테이너
    • 여러 모듈에게 독립된 환경을 동시에 제공할 수 있기 때문에 마이크로서비스 구조에서 가장 많이 사용되고 있는 가상화 기술
    • 특정 서버 컨테이너를 동적으로 늘려서 부하를 분산할 수 있음
    • 서버와 데이터베이스 이미지를 독립적으로 관리하기 때문에 유지보수 용이
    • 컨테이너 오케스트레이션 플랫폼을 통해 사용
      • 도커 스웜
      • 쿠버네티스

1.3 도커 엔진 설치

profile
안녕하세요~

0개의 댓글