목차

배경

CI/CD를 위한 그 첫 걸음 Docker! 이론편

과정

Docker 란?

Docker는 개발자가 컨테이너를 빌드, 배포, 실행, 업데이트, 관리할 수 있는 오픈 소스 플랫폼입니다.

여기서 컨테이너는 데스크탑, 기존 it, 클라우드 등 어디서나 실행할 수 있도록 애플리케이션 코드를 해당 라이브러리 및 종속 항목과 함께 페키징한 소프트웨어 실행 유닛이라고 하는데…

즉 미리 파일로 작성한 특정 환경을 자동으로 동일하게 독립적으로 구축해줄 수 있도록 해주는 기술을 컨테이너라고 합니다.

간단하게 말하면 컨테이너 기반 가상화 도구라는 것인데 가상화를 좀 더 자세하게 설명해봅시다.

가상화의 등장 배경

하나의 서버에 두개의 서비스를 제공하려고 하면 충돌이 발생합니다.

예를 들어 하나의 서버에서 두 개의 서비스를 제공하는 상황에서 똑같이 Node.js를 사용하는데 버전이 서로 다른 Node.js를 요구한다면?

위와 같은 상황이 있다면 버전이 다른 Node.js를 가지고 있어야 하고, 또한 Node.js를 불러오는 과정에서 서로 다른 상황에서 필요한 Node.js를 가져올 수 있도록 복잡한 설정을 해야 합니다. 또한 저장 측면에서도 좋지 않습니다.

그래서 하나의 서버를 나눠 격리된 환경에서 사용하는 것을 가상화라고 합니다. 서버의 자원을 분산하고 이를 각각의 서비스에 할당하는 것이죠.

즉 가상화를 있어 보이게 표현하자면

하나의 물리적 서버에서 여러 개의 운영 체제를 게스트로 실행할 수 있게 해주는 소프트웨어 아키텍쳐

라고 할 수 있습니다.

Untitled