웹 서비스를 하기 위해서는 많은 프로그램이 필요하다. 서버 컴퓨터에는 OS가 설치되어 있어야 하고 DB / 어플리케이션 / 어플리케이션 사용할 라이브러리들. 여러 가지 것들의 서버 컴퓨터에 어플리케이션을 서비스 할때마다 설치하는건 여간 귀찮은 작업이 아니다. 마치 매번 CPU / 그래픽카드 / 메인보드 구해서 PC를 조립하는것처럼 서로 버전이 호환되는지 안정적인지 이슈는 없는지 확인해야 되기 때문이다.
도커 ( docker )는 이런 행위를 편리하게 도와주는 도구 이다.
도커란?
동일한 하드웨어에서 프로세스를 각각 독립되게 실행할 수 있도록 도와주는 플랫폼이다.
컨테이너?
독립적으로 실행된 프로세스를 도커라고 한다.
이미지
컨테이너를 실행시키기 위해서 필요한 라이브러리 / 코드 / 설정 등의 정보를 담고 있는 파일 뭉치를 이미지라고 말한다.
필요한 이유
모던 웹 개발에서는 다양한 라이브러리와 환경을 요구합니다.
웹 서버도 자바 / 고 / 노드 등 다양하고 각각 요구하는 라이브러리도 모두 다릅니다.
프론트 엔드 또한 자바크스립트 / 타입스크립트 / 리액트 / 바벨 등 많은 라이브러리를 사용합니다.
또한 마이크로 서비스 아키테처에서는 다양한 프로세스들을 잘게 쪼개어 서비스 하기 때문에 동일 서버 하드웨어에서 다양한 프로세스가 동작됩니다.
이러한 개발 환경에서는 각각의 서비스들이 독립적으로 실행되서 서로의 의존성을 해치지 않는 필요성이 생깁니다.
장점
서비스를 배포 할때 서버 하드웨어에 모듈을 설치하는 수고가 생략됩니다.
이미 모두 포함된 이미지 자체를 배포해서 실행시키면 됩니다.
반대로 서비스 중인 프로세스를 테스트 하기 위해서 단순히 서버의 이미지를 받아서 실행시키면 됩니다.