loading

Docker란 무엇인가




Docker는 컨테이너 가상화 환경에서 애플리케이션을 관리하고 실행하기 위한 오픈소스 플랫폼이다. 

그렇다면 컨테이너란 무엇을 뜻할까?



 우리가 흔히 알고있는 컨테이너는 일반적으로 물건을 담을 수 있는 용기를 말하나 물류와 관련하여 화물을 실을 수 있도록 규격화된 직육면체형의 용기를 말한다. 컨테이너란 용어는 기름과 물같은 액체 또는 대량의 화물을 묶어 옮기는 용도로 사용되었으며 현재는 솔루션환경 또는 복잡한 리눅스 애플리케이션을 묶는 용도로도 사용이 되고있다. 이것이 Docker의 컨테이너이다. 



현재 이 Docker가 IT업계에서 각광을 받고있다. 

컨테이너를 통해 개발, 테스트, 서비스 환경을 하나로 통일해 효율적으로 관리를 할 수 있기때문이다. 개발자로 예를 든다면 개발자는 개발하기전 개발환경을 고민해야하며 운영체제에 대해 고민해야하고 언어의 패키지 버전 등 개발 전 많은 생각에 빠지게 된다. 하지만 Docker가 등장하면서 이러한 고민은 모두 사라졌다. 개발자는 코드에만 신경쓰면 되고 시스템 운영자는 개발자의 환경제공을 위한 스트레스를 받지 않고 운영베이스만 만들어주면 되는 것이다. 이렇듯 이 기술은 시간이 지나면 보편화되고 IT인들에게 더욱 편한 세상이 될 것이다.



Docker의 핵심적인 특징을 알아보자. 

Docker는 이식성이 뛰어나다.

애플리케이션을 개발하면서 설계, 개발, 테스트, 적용 단계를 거쳐 개발이 완료된다. 

개발환경과 테스트환경에서 제대로 동작한다고 해도 적용단계인 운영 환경에서 반영하면 제대로 동작않는 경우가 있다. Docker는 인프라 환경을 컨테이너로 관리하기 때문에 이러한 문제점이 사라진다. 애플리케이션에 필요한 모든 파일, 디렉터리를 통째로 컨테이너로 묶는다. 개발자는 Docker를 통해 자신이 개발한 웹 애플리케이션 실행에 필요한 것을 Docker 이미지로 만든다. 이 이미지는 Docker 를 설치할 수 있는 환경이라면 어디든 동작하여 이식성이 높다.




이렇듯 이식성이 높은 Docker는 활용 가능성이 무궁무진하다. 

Docker의 기본적인 개념을 익힌다음 시작하여 Docker 이미지를 받고 컨테이너를 생성하는 등 실습을 통해 몸소 느껴보길 바란다. 막상 Docker의 매력을 못느낄진 모르지만 시스템 전체를  묶고 관리할 수 있는 단계까지 간다면 다른 세상을 느낄 것이라 확신한다.