나아가는 길에 발자국을 찍어보자

[Docker] 도커란 본문

도커(Docker)

[Docker] 도커란

NAWIN 2020. 7. 20. 18:30
반응형

1. 도커(Docker)란?

 1) 컨테이너 기반의 가상화 플랫폼.

 2) 컨테이너(Container) : 독립된 공간에서 프로세스들이 운영되는 환경.
 3) 컨테이너 기술은 Linux이전에서도 사용되던 기술이었지만, 설정이 매우 복잡하고, 사용이 어려웠기 때문에 많은 사람들이 사용하지 않았다.
 4) Docker가 출시되고 수초만에 새로운 운영체제를 생성하고 서비스를 배포할수있게 되어 개발자들이 실질적으로 사용 할 수있는 편리성이 추가된 것. 

=> 하나의 서버에서 여러개의 컨테이너가 실행됨에도 서로 성능에 영향을 끼치지 않고 독립적으로 실행되며 새로운 컨테이너를 생성하는데 수 초 밖에 걸리지 않는다.

 

 

 

2. Virtual Machines와 Docker의 차이점


1) Virtual Machines
- 배포할 각 애플리케이션 스택마다 별도의 VM과 게스트 OS가 필요하고, 곧 성능의문제와 직결된다.
- 응용 프로그램 소프트웨어, 종속성 및 게스트 OS가 포함되어 있다. 
 
2) Docker(Linux)
- Linux위에서 Docker는 Host Linux의 시스템을 사용하고 프로세스 격리를 통해 응용 프로그램 및 종속성을 모듈식 containser로 패키지 한다.
- VM이 필요하지 않으며, APP1과 APP2의 OS리소스는 서로 공유된다.=> CPU나 Memory를 딱 필요한 만큼만 할당하게 되고 성능의 손실이 거의 발생하지 않는다.

3) Docker(Non-Linux)
- Docker가 동작하기 위한 미니 Linux가 포함된 경량 VM이 필요하다.
- 컨테이너 수와 관계없이 단일 VM과 Guest Linux System 만이 필요하다.

 

 

 

 

2.Image의 개념 

- 이미지는 컨테이너를 정의하는 읽기 전용 템플릿이다.
- 컨테이너가 실행되기에 필요한 라이브러리 및 종속성에 대한 정의가 포함 되어 있다.

 

ex) - 하나의 이미지에 여러개의 컨테이너가 생성 될 수 있고, 
     - 컨테이너의 상태가 변하더라도 이미지는 변하지 않으며 추가적으로 변화된 값은 컨테이너에 저장된다.

 

=> 컨테이너는 인스턴스화된 (실행된) Docker의 이미지 이다. 


ex) 서버를 확장해야 할 경우가 생긴다면 Image를 생성하고 Container를 생성하기만 하면 된다.(Image는 Container가 실행되기 위한 모든 정보를 포함하고 있기 때문.)
기존 처럼 새롭게 서버를 만들고 그안에 필요한 설정을 새롭게 할 필요가 없다.

 

2. Docker를 사용해야 하는 이유.

1) 더빨리 독립적인 코드를 전달 가능.
2) 애플리케이션 운영을 표준화 -> 리소스 재상용률 증가 -> 비용 절감
3) 애플리케이션의 신뢰성 확보 : 간단한 구문만으로 어디에서나 안정적으로 실행될 수 있는 단일 객체이기 때문
4) 컨테이너 각각을 Microservice로 사용하여 배포하는 형태로 손쉽게 마이크로서비스 아키텍처를 구축하고 실행 할수 있기 때문에 다양한 cloud서비스에서도 Docker의 사용을 적극 권장하고 있다.

 

 

반응형

'도커(Docker)' 카테고리의 다른 글

도커(Docker) 게시판 개설.  (0) 2020.07.20
Comments