본문 바로가기

교육/Basic 과정

컨테이너(Container)와 도커(Docker) 알아보기

kt cloud와 함께 컨테이너(Container)와 도커(Docker) 알아보기

IT분야에 종사하시거나 IT에 많은 관심을 가지고 계신다면 ContainerKubernetes와 같은 용어들을 들어보신 적이 있으실 겁니다. 이 기술은 IT에서 몇 년 동안 핫하게 주목되고 있는 기술이기도 하고, 많은 기업에서도 Container기술을 활용해서 다양한 서비스들을 출시하고 있습니다. 여기서 말씀드리는 Container, Container Orchestration Tool 이 두 기술을 혼합해서 사용하시게 되면 서비스의 유지보수 측면에서 굉장히 유용하게 사용될 수 있는 기술이기 때문에 이번 강의를 통해 Container, Container Orchestration Tool을 한 번쯤 들어보시는 것도 좋을 것 같습니다.

 

컨테이너(Container)와 도커(Docker) 알아보기

목차

 1. 컨테이너(Container)

  1) 기술배경

  2) VM과 컨테이너(Container) 비교

 

2.컨테이너(Container) 기술특징

 1) 이동성, 배포 편의성
 2) 가
벼운 가상화 기술

 3). 도커(Docker) 의 기능

 

3. Docker의 3가지 기능

 

 

Container기술의 등장배경

자신의 컴퓨터나 서버에 여러 대의 서버를 생성하고자 한다면 여러 개의 VM(Virtual Machine)을 띄워야 합니다. 이렇게 VM을 여러 개 띄우기 위해서는 자원을 논리적으로 분리해주는 하이퍼바이저와 같은 소프트웨어를 설치해주고 이를 통해 여러 대의 VM을 생성해야 합니다그런데 이렇게 VM을 생성해서 진행할 때  호스트 서버에 좀 더 효과적으로 많은 서비스를 올리기 위해서 리소스 사용량을 조금 더 가볍게 만들 수 없을까? 해서 만들어 진 것이 Container 엔진입니다. Container 엔진이 출시된 이후 Container d, docker, cri-o 와 같은 다양한 Container기술이 나오게 되었습니다. 이 기술을 어떻게 더 가볍게 논리적으로 만들었는지에 대해서 강의를 통해 알아보세요.

Container기술의 등장배경

 

VM와 Container 비교

VM과 비교해서 Container가 어떻게 리소스를 더 효율적으로 사용할 수 있게 되었는지에 알아보겠습니다. VM과 Container의 레이어 차이를 구분하면 되는데요. VM은 기본적으로 컴퓨터에 서버나 OS가 깔리게 되고, 자원을 논리적으로 분리할 수 있는 하이퍼바이저가 설치되면 이제 VM을 생성할 수 있게 됩니다. 이 때 VM을 생성할 때 Container와는 다른 차이점을 발견하게 됩니다. Guest OS가 VM에는 있지만 Container에서는 없어진 것을 확인할 수 있습니다. 바로 이 차이인데요. Container는 Guest OS 설치없이 VM을 띄울 수 있어 훨씬 가볍고 자원의 효율성도 극대화되어 사용할 수 있게 됩니다.

VM와 Container 비교

 

Container 기술의 특징

이동성, 배포 편의성
개발 환경과 상용환경이 다를 경우 Container는 이런 변화대응에 편리합니다. 개발 환경과 상용환경의 버전이 다를 경우 개발자는 그에 맞는 라이브러리 버전을 사용하여 개발합니다. 예를 들어 개발환경이 Linux6버전이라면 개발자는 6 버전에 맞는 Version Xjdk를 사용해서 개발을 진행하고, 이제 개발이 완료되어 상용환경에 올릴 경우 상용 환경인 Linux 7버전에 맞는 버전 YJDK 라이브러리가 필요하게 됩니다. 이럴 경우에 개발 환경에서 완료한 서비스를 상용 환경에 올리게 되면 버전에 따른 오류가 발생할 수 있습니다.

하지만 Container는 서비스 배포에 필요한 다양한 요소들을 OS 이미지처럼 하나의 이미지로 만들기 때문에 환경차이의 변화에 대응하기 편리합니다.

Container 기술의 특징 1.이동성, 배포 편의성

 

가벼운 가상화 기술

Container에서는 Guest OS가 없는 가벼운 가상화 기술을 사용한다는 특징이 있습니다. VM의 경우에는 하이퍼바이저를 통해 서버의 자원을 분리했다면, ContainerContainer 엔진을 통해서 자원을 논리적으로 분리하여 사용할 수 있습니다. 이 때 Container엔진은 namespacecgroup이라는 구분자를 통해서 호스트 서버에 대한 자원들을 구분하고 있습니다. 이를통해 Guest OS없이 호스트 OS를 공유하며 Container를 배포하여 사용할 수 있는 특징이 있습니다.

Container 기술의 특징 2. 가벼운 가상화기술

 

💁영상으로 학습하기