Docker란?

Docker란?

 

도커는 '데이터 또는 프로그램을 격리시키는 기능'을 제공하는 소프트웨어다.

애플리케이션을 컨테이너라는 단위로 패키징하고 실행할 수 있도록 도와주는 가상화 기술을 제공한다.

 

한마디로 어떤 환경에서도 동일하게 실행되는 프로그램을 만들기 위한 도구다.

 


도커가 필요한 이유

 

설정 변경의 번거로움

개발하고 배포할 때 제일 귀찮았던 부분은 내 PC에서는 잘 되게 설정해 놨는데, 배포서버에서 동작하게 하려면 설정을 바꿔줘야 하는 부분이었다.

왜 설정을 바꿔줘야 하나? 운영체제, 라이브러리 등이 다르기 때문이다.

컨테이너를 사용하면 개발자가 설정한 환경 그대로 유지할 수 있어서 어디서 실행하든 동일한 결과를 보장할 수 있다.

 

프로그램 격리의 필요성

 

도커가 주로 서버에서 프로그램과 데이터를 격리하는 기능을 제공한다고 했는데 왜 프로그램끼리 격리가 필요할까? 에 대해 생각해 볼 필요가 있다.

 

소프트웨어는 보통 단독으로 동작하는 것이 아닌 실행 환경, 라이브러리, 다른 프로그램을 통해서 동작하는 경우가 대부분이다.

예를 들어 A 프로그램은 C 프로그램의 5.0 버전이 요구되고 B 프로그램은 C 프로그램의 6.0 버전이 요구된다고 치자.

일반적으로 같은 컴퓨터엔 하나의 프로그램만 설치할 수 있으므로 A만을 위해 5.0 버전을 설치하면  B가 오류가 발생하게 될 것이다.

 

이러한 오류를 해결하기 위해 프로그램 격리가 필요한 것이다.

컨테이너와 다른 컨테이너는 완전히 분리된 환경이기 때문에 컨테이너 안에 들어있는 프로그램은 다른 프로그램과 격리된 상태라 각 컨테이너에 C 프로그램의 5.0 버전 6.0 버전을 각각 설치하면 될 것이다.

 


 

도커 vs 가상머신

두 기술 모두 애플리케이션을 격리된 환경에서 실행할 수 있게 하지만, 차이점이 있다.

 

구분 가상머신 도커
실행방식 각 VM이 개별 운영 체제를 실행 하나의 OS에서 여러 컨테이너 실행
속도 무겁고 부팅 시간이 길다 가볍고 빠르게 실행 가능
리소스 사용량  높은 CPU, 메모리 사용 적은 자원으로 실행 가능
배포 용이성  환경 설정이 다르면 오류 발생 가능 동일한 환경에서 배포 가능

 


 

도커의 핵심 개념

 

1. 컨테이너 (Container)

컨테이너는 애플리케이션과 그 실행에 필요한 모든 파일을 포함한 가볍게 독립적인 실행환경이다.

이를 통해 어디서든 동일한 환경에서 프로그램을 실행할 수 있다.

 

2. 이미지 (Image)

컨테이너를 실행하기 위한 템플릿이다. 

이미지는 컨테이너의 상태를 저장하고, 여러 개의 컨테이너를 동일한 이미지에서 생성할 수 있다.

 

3.Dockerfile

도커 이미지를 만들기 위한 설정 파일이다. 어떤 OS를 사용할지, 어떤 프로그램을 설치할지 등의 정보를 포함하고 있다.

4. Docker Hub

도커 이미지를 공유하고 다운로드할 수 있는 저장소.

예를 들어 nginx, mysql 등의 공식 이미지를 바로 가져와 사용할 수 있다.

'Docker' 카테고리의 다른 글

Docker services 내부 설정 상세 정리  (0) 2025.03.10
Docker Compose  (0) 2025.03.10
Docker Desktop에서 container 실행해보기  (0) 2025.03.10
Window에서 도커 설치  (0) 2025.03.10
VM에 Docker 설치하기  (0) 2025.03.10