Docker 개념

이현진·2022년 12월 7일
0

Docker

목록 보기
1/3
post-thumbnail

Docker란?

도커는 부두에서 컨테이너를 다루는 노동자들을 의미한다.

도커는 우리 서비스에 필요한 각각의 소프트웨어를 컨테이너라는 가상의 격리된 공간에서 동작할 수 있게 해주는 컨테이너 기반의 오픈소스 가상화 플랫폼이다.

왜 Docker가 필요한가?

하나의 앱을 실행하기 위해서는 웹서버, 데이터베이스 등 여러 소프트웨어를 설치해야 한다. 그러나 이것들은 하나의 OS 환경에서 개발된 것이 아니며, 설치를 하는 사람이 각각의 개발자도 아니니, 설치할 때마다 문제가 일어나기 마련이다.

또한 필요한 OS마다 컴퓨터를 마련하려니 비용도 만만치 않은 것이다.


먼저 우리는 OS를 가상화했다. VMware나 VirtualBox 같은 가상머신을 이용해 호스트 OS위에 가상화된 공간을 두고, 각 소프트웨어에 필요한 OS를 설치해 사용했다. 그러나 소프트웨어 하나만을 위해 OS를 설치하기에는 OS는 용량이 너무 컸고, OS 위의 OS는 느렸다.

이를 개선하기 위해 HVM(하드웨어 가상 머신)이나 PV(반가상화) 기술이 등장했지만, 여전히 성능문제가 있었고, 프로세스를 격리시키는 방법이 필요했다.


그래서 등장한 것이 도커이다. 도커의 컨테이너에는 OS 전체가 아닌, 앱을 실행시키는데 필요한 라이브러리와 실행파일들만 포함되어 있다. 각 컨테이너마다 OS가 필요하지 않기 때문에, 성능은 빨라졌고 저장장치를 절약할 수 있게 되었다.

Docker와 Linux

도커와 도커 안의 각각의 컨테이너들은 리눅스 위에서 동작한다. 때문에 우리 컴퓨터가 윈도우 혹은 맥OS일 경우, 가상머신을 만들어 이 안에 리눅스를 설치해야 도커와 컨테이너를 사용 가능하다.

도커는 리눅스 외의 운영체제에 대해, 이 과정을 자동으로 해준다. 단, 리눅스에서 도커를 실행할 때보다는 약간의 성능 저하가 발생한다.

profile
세상의 모든 지식을 담을 때까지

0개의 댓글