도커는 리눅스 컨테이너에 여러기능 추가 및 개선하여 애플리케이션을 컨테이너로서 좀 더 쉽게 사용할 수 있도록 만들어진 가상화 프로젝트이다.

<aside> 📢 해당 글은 시작하세요! 도커/쿠버네티스 구판 서적을 기반으로 공부하여 작성되었습니다.

</aside>


장점

  1. 성능 개선 및 메모리 절약에 용이하다

    기존에 사용되던 가상머신과 다르게 별도의 OS 사용이 필요하지 않게 되어, 성능적인 개선과 메모리 용량 또한 작아지며 도커 이미지는 모든 정보를 가지고 있어 이것저것 설치할 필요가 없기 때문에 미리 만들어 놓은 이미지만 다운받으면 컨테이너를 간단하게 생성할 수 있다.

  2. 애플리캐이션 개발과 배포가 편리하다.

    컨테이너는 독립된 개발 환경으로 컨테이너에서 어떤 것이 변경되어도 서버 Host OS에 영향을 주지 않으며 도커는 변경이 불가능한 인프라이기 때문에 배포시 '도커 이미지'라는 패키지를 만들어 서버에 전달하면 기존 버전의 컨테이너를 삭제하고 새로 생성하여 오류가 발생하지 않고 업데이트가 가능하다. 뿐만 아니라 '도커 이미지'는 가상 머신의 이미지와 달리 커널을 포함하지 않기 때문에 용량이 작으며 중복되는 부분은 재사용하여 배포 속도가 매우 빠르다는 장점이 있다.

  3. 기존 리눅스 컨테이너를 간단하고 쉽게 사용이 가능하다

    컨테이너는 새로 등장한 개념이 아니다. 그럼에도 불구하고 컨테이너보다 가상 머신이 보편적으로 사용되어 왔던 이유는 진입 장벽이 높았기 때문이다. 하지만 도커는 기존에 있던 컨테이너를 잘 포장하여 진입 장벽을 무너뜨려 쉽게 사용이 가능해졌다.

  4. 도커는 Go언어 기반으로 빠르다.

    Go언어의 특징은 서버 모듈이 빠르게 동작한다는 점이 있는데 도커는 이 장점을 그대로 지니고있다.

  5. 동일한 환경의 서버 셋팅 손쉽게 할 수 있다.

    동일한 환경의 서버를 셋팅하기위해서는 굉장히 손이 많이 가는 작업을 진행해야하는데 도커를 사용하면 그럴 필요도 없이 손쉽게 동일한 환경의 서버를 clone하여 셋팅할 수 있다. (ex. test1 server, test2 server...)

도커 엔진

도커의 가장 핵심적인 개념이며 도커 엔진을 잘 사용한다는 것은 즉, 도커와 관련된 모든 프로젝트를 능숙하게 다룰 수 있도록 첫걸음을 떼었다고 할 수 있다.