본문 바로가기
IT 지식/기타

Container & Docker

by 이민우 2021. 5. 17.
728x90
반응형

Container

 

프로세스가 격리된 공간에서 동작하도록 하는 기술이다.

 

즉, 어플리케이션을 라이브러리 등과 한꺼번에 묶어 배포함으로써, 서로 다른 컴퓨팅 환경에 구애받지 않고 어플리케이션이 안정적으로 실행할 수 있게 만드는 기술이다.

 

컨테이너는 빠른 개발과 배포가 가능하다는 장점이 있다.

 

 

Docker

도커란 리눅스 상에서 소프트웨어를 라이브러리, 시스템 도구, 런타임 등과 함께 컨테이너로 패키징한 소프트웨어 플랫폼이다. 도커를 사용하면 환경에 구애받지 않고 어플리케이션을 빠르게 개발하고, 배포할 수 있다.

 

즉, 도커는 컨테이너를 기반으로 하는 오픈소스의 가상화 플랫폼으로 볼 수 있다.

그렇다면 왜 굳이 컨테이너를 토대로 가상화를 수행해야 하는 것일까?

 

기존의 가상화라 하면 OS를 가상화하는 방법이 있다. VirtualBox처럼, 원래의 OS 위에 가상화된 OS를 설치하는 방식이다. 하지만 이러한 방식은 오버헤드가 발생하는 경우가 생겼다.

*오버헤드 : 처리를 위해 소요되는 일반적인 시간 혹은 메모리보다 더 소요된 시간 혹은 메모리

 

그렇다면 하이퍼바이저 가상화는? 하이퍼바이저 가상화란 Host OS 없이 하드웨어에 하이퍼바이저를 설치하여 사용하는 방식이다. 예시를 들자면 Xen, KVM 등이 있다.

 

하이퍼바이저 가상화는 별도의 Host OS가 없기에 오버헤드가 적고 하드웨어를 직접 제어하기에 효율적인 리소스 사용이 가능하다. 하지만 자체적으로 관리가 불가능하기에 관리를 위한 콘솔이 별도로 필요했다.

 

마지막으로 컨테이너 기반의 가상화는? 호스트 OS위에 컨테이너 관리 소프트웨어를 설치하여 논리적으로 컨테이너를 나눈다.

컨테이너는 오로지 어플리케이션의 동작을 위한 어플리케이션과 라이브러리 등으로만 구성되기 때문에 개별 서버처럼 작동이 가능하다. 이러한 방법은 오버헤드가 적고, 가볍고 빠르다는 장점이 있다.

 

 

 

 

Docker의 구조

  1. Client : 유저가 명령어를 입력하면 서버로 전송하고, 이를 Docker Daemon이 수행한다.
  2. Docker Daemon : Docker API 요청을 수신하고 Docker Object를 관리한다. 또한 다른 데몬과 통신이 가능하다.
  3. Docker Registry : Docker의 이미지 저장소
  4. Image : 컨테이너 실행에 필요한 파일과 설정값으로 불변이다.
728x90
반응형

'IT 지식 > 기타' 카테고리의 다른 글

Kafka  (0) 2021.05.17
Git과 Github  (0) 2021.05.09
Spring Framework  (0) 2021.05.08
[JAVA & JavaScript] 자바와 자바 스크립트  (0) 2021.03.30