docker

Docker | Docker란

no-easy-ray 2021. 5. 23. 23:33

도커란 무엇일까요?

도커는 컨테이너 기반의 오픈소스 가상화 플랫폼입니다. (컨테이너란?)

 

설명이 조금 부족할 수 있으니 간단한 예시를 들어보겠습니다.

예시로 내 컴퓨터에서 개발한 파이썬 어플리케이션을 서버로 배포한다고 가정해보겠습니다.

위의 그림처럼 내 컴퓨터에서는 파이썬 어플리케이션을 실행하기 위한 프로그램 또는 환경(A, B, C, D)이 존재합니다.

서버로 배포를 하기 위해 저희는 개발한 파이썬 어플리케이션뿐만 아니라 파이썬 어플리케이션에 필요한 프로그램 또는 환경(A, B, C, D)을 같이 구성해야 합니다.

 

 

만약 이과정에서 우리는 다 구성했다고 했지만 서버의 환경에서는 D가 문제가 된다거나 실수로 설치하지 못했다거나 등 내 컴퓨터와 서버의 환경에 맞지 않아 우리가 개발한 파이썬 프로그램이 실행되지 않는 문제가 발생할 수 있습니다.

 

 

그리고 이렇게 고생해서 설정을 동일하게 맞추었지만 만약 배포해야할 서버가 더 많아진다면?

여러 서버에 동일한 작업을 하는 힘든 과정을 겪어야만 합니다.

 

 

즉, 이러한 문제들을 해결하고 더욱 편리하게 어플리케이션을 배포하여 실행할 수 있도록 도와주는 것이 도커입니다.

 

 

 

그렇다면! 도커의 장점은 무엇일까요?

쉽고 빠른 실행 환경 구축

도커는 이미지라는 것을 이용하여 실행환경을 고정할 수 있습니다.

이후 환경을 구축하거나 배포를 할 때 이미지를 이용하여 컨테이너를 띄우게 되고 컨테이너 안에는 미리 작성한 이미지를 통해 미리 고정한 환경을 만들어줌으로써 위의 예시들을 해결하는 방법이 될 수 있습니다.

 

 

쉬운 배포

배포 또한 이미지를 통해 컨테이너를 실행시키기만 하면됨으로 보다 빠르고 쉽게 배포할 수 있습니다.

 

 

가볍고 빠른 실행 속도
가상 머신은 OS를 재구동 해야 하므로 시작 자체가 무거운 편입니다.

반면 도커 컨테이너는 상대적으로 경량이기 때문에 시작이 꽤 빠릅니다. 컨테이너는 메모리나 스토리지(Storage) 소모를 줄이면서 가상화할 수 있습니다. 시작 속도가 압도적입니다.

 

 

하드웨어 자원 절감

컨테이너의 크기가 매우 작고, 하나의 물리적 서버에 다수의 컨테이너를 가동할 수 있습니다. 가벼운 프로젝트라면 수십 개도 운영이 가능합니다. 따라서 비용 절감 효과가 큽니다.

 

 

공유 환경 제공

Git Hub와 비슷하게 Docker Hub가 존재합니다.

Docker Hub를 통해 통해 전 세계의 개발자의 결과물을 얻을 수 있고 결과물을 업로드할 수 있습니다. 검증된 많은 이미지들이 공개되어 있어 내려받기만 하면 됩니다.

 

 

이제 도커가 어떤 건지 알아보았으니 다음 시간에는 도커를 사용하는 방법에 대해서 정리하도록 하겠습니다.

 

참고자료