본문 바로가기

IT/docker

[Docker] Docker 란?

이 글은 subicura님의 글을 요약한 글입니다.
https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html
 

초보를 위한 도커 안내서 - 도커란 무엇인가?

도커를 처음 접하는 시스템 관리자나 서버 개발자를 대상으로 도커 전반에 대해 얕고 넓은 지식을 담고 있습니다. 도커가 등장한 배경과 도커의 역사, 그리고 도커의 핵심 개념인 컨테이너와 이

subicura.com

 

1. 도커란?

컨테이너 기반 가상화 플랫폼

서버에서 사용되는 다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해줍니다.

 

2. 컨테이너

컨테이너란 격리된 공간에서 프로세스가 동작하는 기술입니다.

기존의 가상화 방식은 주로 OS를 가상화하였습니다. 
VMware나 VirtualBox 같은 가상머신은 호스트 OS 위에 게스트 OS 전체를 가상화하여 사용하는 방식이었는데, 
이 방식은 여러가지 OS를 가상화할 수 있고 비교적 간단하지만 무겁고 느려서 운영환경에서는 사용할 수 없었습니다.

위 방법은 성능에 문제가 있었기 때문에 이를 개선한 프로세스 격리 방식이 등장했습니다.

리눅스에서는 이 방식을 리눅스 컨테이너라고 하며 단순히 프로세스를 격리시키는 것이기 때문에 가볍고 빠르게 동작합니다. CPU나 메모리는 딱 프로세스가 필요한 만큼만 추가로 사용하고 성능도 거의 손실이 없습니다.

 

3. 컨테이너와 이미지

도커에서 가장 중요한 개념은 컨테이너와 이미지입니다.
이미지는 컨테이너 실행에 필요한 파일과 설정값 등을 포함하고 있는 것으로 상태값을 가지지않고 변하지 않습니다.
컨테이너는 이미지를 실행한 상태라고 볼 수 있고 추가되거나 변하는 값은 컨테이너에 저장됩니다.
같은 이미지에서 여러개의 컨테이너를 생성할 수 있고, 컨테이너의 상태가 바뀌거나 컨테이너가 삭제되더라도 이미지는 변하지 않고 그대로 남아있습니다.

'IT > docker' 카테고리의 다른 글

[Docker] Spring Boot Docker 사용하기  (0) 2021.08.30