Study/기술 및 용어 정리

Docker란?

토기발 2022. 7. 25. 17:21

요즘 도커가 핫하다는데.....도커....컨테이너... 애매하게는 들었지만 확실하게는 몰라서 개념을 정리하기로 한다.

https://youtu.be/IiNI6XAYtrs

오늘도 테코톡의 도움을 받아봅니다^^~


Docker

컨테이너 기반 가상화 도구

 

 

서버 가상화

하나의 물리적 서버 호스트에서 여러 개의 서버 운영 체제를 게스트로 실행할 수 있게 해주는 소프트웨어 아키텍쳐

 = 하나의 서버의 자원을 여러 서버들이 할당받아서 성능을 분산시키고, 분산 서버는 다른 서비스를 수행 가능.

각 가상머신에는 여러 운영체제가 설치되어 있고, 하이퍼바이저에 의해 생성되고 관리되는 운영체제를 게스트 운영체제라고 부른다.

 

하이퍼바이저 

  • OS들에게 자원을 나누어주며 조율한다.
  • OS들의 커널을 번역해서 하드웨어에게 전달한다.

대표적인 가상화 툴 : VirtualBox , VMware

가상화 작업은 하이퍼바이저를 반드시 거쳐야한다. 또 배포하기 위한 이미지로 만들었을 때 크기도 커진다.

= 성능이 느리고, 용량으로도 부담이 크다.

이를 해결하기 위해 나온 것이 컨테이너

 

 

컨테이너

  • 가상화된 공간을 생성하기 위해 리눅스 자체기능인 chroot, 네임스페이스, cgroup을 사용함으로써 프로세스 단위의 격리 환경을 만듦
  • 컨테이너 안에는 애플리케이션을 구동하는데 필요한 라이브러리 및 실행파일만 존재함
  • 생성->운영->제거까지의 프로세스의 라이프 사이클 관리
  • 이미지의 목적에 따라 생성되는 프로세스 단위의 격리 환경

*도커=/=컨테이너! 도커는 컨테이너 기술에 여러 기능을 추가한 오픈소스 프로젝트이다. 

 

 

컨테이너 기반 가상화

  • 이미지의 용량이 줄어든다. 
  • 애플리케이션을 구동하는데 필요한 라이브러리 및 실행파일만 존재함
  • 속도가 빠르고 성능 손실이 없다.

 

컨테이너를 사용하는 이유

  • Host와의 격리를 통해 독립적인 환경을 보장
  • 프로세스를 컨테이너단위로 사용
  • 프로세스의 관리, 확장이 용이

 

컨테이너 관리

 

사용자는 Doker Engine을 통해 컨테이너를 관리할 수 있다.

 

Doker Engine

유저가 컨테이너를 쉽게 사용할 수 있게 해주는 주체
  • 컨테이너 관리
  • 이미지 관리
  • 볼륨(데이터 저장소) 관리
  • 네트워크 관리