How to become a real programmer

도커(Docker)란 무엇인가?

MinDDokDDok 2022. 7. 31. 17:54

프로그래밍을 하거나, 공부하는 입장에서 한번씩 '도커'라는 기술을 들어본 적 있을 것이다. 도커란 무엇인가?

도커는 개발환경을 제어할 수 있도록 하는 컨테이너 중 하나인데 컨테이너란 공간, 즉 나누어진 틀? 같은걸로 이해하면 될 것 같다.

 

이렇게 나누어서 뭐가 좋냐고 이야기를 할 수 있겠다. 해당 예시는 유튜버 '얄팍한 코딩사전'님께서 드신 예인데,

프로그램을 개발할 때 하나의 로컬 컴퓨터에서 두 개의 프로그램에 각각 필요한 Node.js 두 가지 버전을 사용한다고 생각하자. 이렇게 되면 로컬에서 사용하는 Node.js는 두 가지 버전이므로 사용시 혼동이 오거나 전환과정이 필요한데, 이를 방지하기 위해서 각 프로그램에 대한 기술만 담아놓는 방법을 고안할 것이다.

한 프로그램에 들어가는 여러 언어들, 기술들을 담아놓기 위해서는 클라우드 컴퓨팅기술을 활용하여 가상환경에서 프로그래밍 하는 방식도 있을 수 있지만 이러한 클라우드를 활용한 가상환경은 환경을 확실히 분리하긴 하지만, 효율적이지 않은 방식이다. 컴퓨터 자원 할당에 제한이 있기 때문이다. 또한 각각 필요한 OS를 구축해야한다는 점은 저장공간을 협소하게 할 수 있으며 현재 로컬에서 가지고 있는 부분만 공유하면 되는 것을 중복작업하게 할 수 있다.

이와는 다르게, 컨테이너는 로컬 컴퓨터의 컴퓨터자원을 공유받아 사용할 수 있으므로 중복을 최소화해 불필요한 환경구축을 배제시킬 수 있으면서도 프로그램에 따라 다른 언어, 기술들을 구축할 수 있게 해준다.

 

이러한 컨테이너 기술에 가장 대표적인 게 도커이고, 도커를 어떻게 실행할 수 있는가를 따라해보도록 하겠다.