Docker. 찍어먹기

Kim Jin Seong·2022년 2월 12일
0

Docker

목록 보기
1/1
post-thumbnail

Docker란?

  • 컨테이너 기반의 오픈소스 가상화 플랫폼
  • 리눅스 컨테이너에 여러 기능을 추가함으로써 애플리케이션을 컨테이너로서 좀 더 쉽게 사용할 수 있게 만들어진 오픈소스 프로젝트
  • Go 언어로 작성
  • 가상 머신과 달리 도커 컨테이너는 성능의 손실이 거의 없음
  • 도커 엔진
    -> 컨테이너를 생성하고 관리하는 주체로 컨테이너 제어 등 다양한 가능을 제공하는 도커의 주 프로젝트
  • 다양한 프로그램, 실행 환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해주는 플랫폼

컨테이너

  • 격리된 공간에서 프로세스가 동작하는 기술
  • 가상화 기술의 하나지만 기존 방식과는 차이가 있다.
    -> 기존 가상화 기술은 하이퍼바이저를 이용해 여려 개의 운영체제를 하나의 호스트에서 생성하 사용하는 방식( 가상머신, VirtualBox, VMware )
    -> 하이퍼바이저를 반드시 거치기 때문이 일반 호스트에 비해 성능 손실이 발생하고 이미지 크기 또한 커진다.
  • 도커 컨테이너는 가상화된 공간을 생성하기 위해 리눅스 자체 기능을 사용해 프로세스 단위의 격리 환경을 만들기 때문에 성능 손실이 거의 없다.
  • 필요한 커널은 호스트와 공유해 사용하고, 컨테이너 안에는 어플리케이션 구동에 필요한 라이브러리 및 실행파일만 존재
    -> 이미지로 만들었을 때 이미지 용량 또한 대폭 감소
  • 하나의 서버에 여러 개의 컨테이너를 실행하면 서로 영향을 미치지 않고 독립적으로 실행
  • 결론적으로 이미지 배포 시간이 빠르고 가상과 공간을 사용할 대의 성능 손실도 거의 없다.

이미지

  • 컨테이너를 생성할 때 필요한 요소
  • 가상 머신에서의 iso 파일과 비슷한 개념
  • 컨테이너 실행에 필요한 파일과 설정 값들을 포함
    -> 컨테이너를 실행하기 위한 모든 정보를 갖고 있다.
  • 컨테이너는 이미지를 실행한 상태라고 볼 수 있다.
  • 같은 이미지에서 여러 개의 컨테이너를 생성할 수 있고 컨테이너의 상태가 바뀌거나 컨테이너가 삭제되더라도 이미지는 변하지 않는다.

왜 Docker일까?

애플리케이션 개발 / 배포

  • 도커 컨테이너는 호스트 OS 위에서 실행되는 격리된 공간으로, 컨테이너 자체에 특별한 권한을 주지 않는 한 호스트 OS에는 영향을 끼치지 않는다.
    -> 독립된 개발 환경을 보장 받을 수 있다.
  • 컨테이너 내부에 작업을 마친 뒤 운영 환경에 배포하려고 하면 해덩 컨테이너를 도커 이미지라고 하는 패키지로 만들어 운영 서버에 전달하기만 하면 된다.
    -> 편의성 향상 및 의존성을 걱정할 필요가 없어짐
    -> 개발 / 운영 환경의 통합
  • 가상 머신과 달리 커널을 포함하고 있지 않아 이미지 크기가 작다.
  • 이미지 내용을 레이어 단위로 구성하며, 중복 레이어를 재사용할 수 있다.
    -> 어플리케이션 배포 속도 최고

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

  • 모놀리스( Monolith ) 어플리케이션?
    -> 소프트웨어의 여러 모듈이 상호 작용하는 로직을 하나의 프로그램 내에서 구동시키는 방식
    -> 서비스의 기능이 복잡해지고 거대해질수록 확장성과 유연성이 줄어듬
  • 마이크로 서비스( Microservices )
    -> 모놀리스 방식을 대체하기 위한 새로운 개념
    -> 여러 모듈을 독립된 형태로 구성
    -> 언어에 종속되지 않음
    -> 변화에 빠른 대응
    -> 모듈 관리의 용이함
  • 컨테이너는 생성, 시작이 빠르고 여러 모듈에게 독립된 환경을 동시에 제공할 수 있기 때문에 마이크로 서비스 구조에서 가장 많이 사용되고 있는 가상화 기술이다.

Refernce

https://wikibook.co.kr/docker-kube-rev-ebook/
https://github.com/alicek106/start-docker-kubernetes

profile
Data Study

2개의 댓글

comment-user-thumbnail
2022년 2월 12일

도커 귀여워요

1개의 답글