본문 바로가기
카테고리 없음

도커란 무엇이고 왜 사용해야할까?(Docker 개념)

2022. 6. 5.

Docker가 무엇인지 알아보고 왜 사용해야 하는지 알아봅시다. 도커에 대해서는 실습을 직접 해보는 것이 좋지만 그 전에 도커란 무엇인지 짧게 알아보는 것도 앞으로 진행될 실습에 도움이 될 것 같아 정리하겠습니다.

 

Docker를 사용해야하는 이유는?

Docker
Docker 대표사진

내 컴퓨터에서 어떤 프로그램을 만드려면 설치해야 할 소프트웨어가 많습니다. 예를 들어 웹 개발을 하려면 웹서버, 데이터 베이스 등 많은 것을 설치해야 합니다.

 

그런데 해보신 분들은 알겠지만, 이런 소프트웨어들을 설치하고 세팅하는 것이 매우 귀찮습니다. 또 잘 동작하지도 않습니다. 그래서 많은 사람들은 좌절에 늪에 빠집니다. 또 잘되도 의심되는 상황에 빠집니다.

 

이런 상황을 여러 번 반복하게 되면 우리는 이런 생각을 하게 됩니다. 웹 서버를 만든 사람이 컴퓨터를 구해 적당한 운영체제를 설치하고, 그 위에 웹서버를 설치하여 우리에게 넘겨준다면 얼마나 좋을까요? 데이터베이스 서버도 마찬가지로요.

 

전문가가 알아서 잘 만들어준 것이니 정상 동작하지 않을까 걱정할 필요도 없는 것입니다. 또한 네트워크로 받은 웹 서버, DB서버끼리 통신하면 더할 나위 없겠죠.

 

그래서 자연스럽게 우린 다음 생각을 하게 됩니다. 하나의 컴퓨터에 가상의 컴퓨터를 만들고 그 위에 운영체제를 설치한 후 웹 서버를 설치하면 어떨까요? Database 서버도 동일하게 가상의 컴퓨터에 설치하고요.

 

이런 구조를 머릿속으로 그려보면 VMware Virtualbox가 떠오르신 분들이 있을 것입니다. 비슷합니다. 그런데, 겨우 웹서버를 운영하기 위해 운영체제를 설치한다는 것이 너무 비효율적으로 생각되지 않으신가요? 운영체제의 용량이 얼마나 큰데요.

 

또 운영체제 위에 운영체제를 또 설치하면 얼마나 시스템이 느려질까요? 그래서 우리는 다음 단계를 생각해봅니다.

Docker와 VMware의 차이

Docker Vs. Vmware
Vmware(좌) Vs. Docker(우)

한 대의 컴퓨터 안에서 각각의 App, 웹서버, 데이터베이스를 실행시키는 것입니다. 또 앱과 웹, 데이터베이스는 그냥 한 공간에서 실행되는 것이 아니고 격리된 환경에서 실행됩니다.

 

이때 운영체제가 설치된 컴퓨터를 Host라고 부릅니다. Host에서 실행되는 격리된 각각의 실행 환경(웹, 데이터베이스)을 컨테이너라고 부릅시다.

 

각각의 컨테이너에는 운영체제의 전체가 설치되어 있는 것이 아니고, 웹과 데이터베이스를 실행하는데 필요한 라이브러리와 실행파일만 포함되어 있습니다.

 

이미 존재하는 운영체제를 공유하니 무엇인가 설치할 필요도 없고, 운영체제가 하나니 속도가 느려지지 않고, 저장 장치의 용량도 아낄 수 있습니다. 이런 비효율을 개선할 수 있다는 것이죠.

 

리눅스 운영체제에는 이런 방식의 실행 방법이 내장되어있습니다. 이런 기술을 컨테이너라고 부릅니다. 컨테이너 기술을 이용하여 이런 일을 도와주는 소프트웨어들이 많습니다. 그중에 가장 많이 쓰이는 것이 바로 Docker입니다.

 

도커의 개념에 대해 알아보았습니다. 그렇다면 도커를 어떻게 사용해야 하는지는 다음 글에서 알아봅시다.

 

(이 글은 생활코딩의 도커 입문 수업을 토대로 공부하며 정리한 자료입니다.)

반응형

댓글