서버 인프라/Docker

Docker 기본 개념

트리맨스 2021. 9. 4. 18:56
반응형

 

Docker는 가상 운영 체제 환경을 만들어주는 매우 편리한 프로그램이다. 마치 VirtualBox 같은 개념이라고 생각할 수도 있으나, 약간은 다른 개념이다. 개인 공부하는 겸 필요한 기능만 정리해 볼려고 한다.

 

Docker는 각 운영체제에 맞는 버전이 따로 있다. 커널과 관련된 곳까지 관여하는 프로그램이라서 맥의 경우에는 M1 칩셋과 Intel 칩셋을 따로 구분한다. 아직까지 M1 버전은 완벽하게 지원하지 않는다고 한다. 언젠간 완벽하게 지원해 주겠지 뭐.

 

Docker 의 기본 개념


Docker를 사용하는 이유는 간단하다. 특정한 개발 환경에서만 실행되는 애플리케이션을 실제 릴리즈 환경에 올리려고 할 때, 지금까지 했던 설정들을 같이 올려야 한다. 이 때 자신이 설정한 환경들을 수동으로 일일이 세팅하기도 상당히 귀찮을 것이다. 이 때 필요한 것이 Docker 이다. 도커를 이용해서 원하는 환경을 간단한 명령어로 자동으로 복사할 수 있게 한다.

 

예를 들어 node 12 버전에서만 실행되는 nestjs 서버가 있다고 하자. 만약 릴리즈 환경에서 개발 환경이랑 다르게 node 16버전을 설치한 후 nestjs 서버를 실행한다고 하면 정상적인 동작을 보장하지 않을 것이다. 이 때 필요한 것이 Docker 이다. 최소한으로 필요한 환경을 가상 운영체제 개념으로 간단히 세팅할 수 있다. 

 

도커의 동작을 정말 간단히 정리해 보자면 OS를 설치하는 모습이랑 비슷하다. 먼저 Docker Image를 제작해야 한다. Docker Image의 기본이 되는 이미지들은 Docker Hub에 있어서 명령어만 입력하면 간단히 제작이 가능하다. 이렇게 만들어진 도커 이미지들은 도커 데스크탑에서 images 항목에 들어가면 만들어진 이미지 목록을 볼 수 있다. 그 이후 Docker run 명령어를 통해 가상 이미지를 설치 및 실행 (run) 하면 된다. 실행된 이미지는 컨테이너 라고 불린다.

 

 

반응형