Docker

Docker(도커)는 무엇인가요?

블로그 주인장 2024. 2. 1.

서론

DevTool 중 하나인 도커(docker)에 대해 알아보겠습니다.

 

 

도커가 탄생한 배경

도커가 없을 당시에는 로컬에서 개발해서 실제 서버에 올릴 때 소스파일만 올리는 것으로는 문제가 있었다.

Spring을 예시로 든다면, 코드를 구동하기 위해서는 각종 Dependencies나 application 파일 등을 설정해줘야한다.

하지만 개발자의 PC나 서버마다 해당 모든 것을 설치하는 것은 번거롭고, 이로 인한 오류가 발생하기도한다.

 

이러한 문제점을 보완하기 위해서 Docker가 탄생한 것이다.

 

도커란 무엇인가요?

도커란 프로세스 격리 기술들을 이용하여 컨테이너를 생성하고 관리하기 위한 도구입니다.

 

쉽게 말하면, 하나의 컴퓨터(물리적 자원) 안에서 여러 개의 시스템과 환경설정 등이

충돌하지 않고 동시에 사용할 수 있도록 격리시켜서 실행하는 프로그램입니다.

 

컨테이너라고 불리는 하나의 작은 소프트웨어 유닛안에

우리의 어플리케이션과 그에 따른 시스템 툴, 환경설정 등 모두 하나에 묶어서

다른 서버나 PC 같이 어떤 곳에도 쉽게 배포하고 안정적으로 구동할 수 있게 도와주는 툴입니다.

 

도커의 구조

도커는 컨테이너를 관리하는 플랫폼 도구입니다.

컨테이너는 프로세스 격리 기술입니다.

 

도커는 이러한 컨테이너를 이미지라는 일련의 툴, 프레임을 기반으로 구축합니다.

이 이미지를 사용자가 어떻게 구성하느냐에 따라서 사용자화된 개발 환경을 구축할 수 있습니다.

 

예시로 같은 이미지만 있다면 어떤 개발 배포환경이든 원하는 개발환경(컨테이너)를 구축할 수 있습니다.

 

 

도커 vs VM

그렇다면 도커(Docker)와 가상 환경(VM)은 어떤 차이점은 무엇일까요?

(좌) VM, (우) 도커

 

✔ Virtual Machine

물리적인 자원에서 충돌나는 프로그램과 환경설정을 돌려야하는 상황이면 Virtual Machine을 이용하여

새로운 OS를 설치하여 자원을 나누어서 사용할 수 있습니다.

 

예시로, VMWare 나 VirtualBox 같은 가상머신을 이용하여 독립적인 가상의 머신을 만드는 것입니다.

하지만 동일한 어플리케이션을 다양한 OS 위에서 구동하기 위한 소프트웨어이기 때문에,

각각의 VM에는 OS가 올라가기 때문에 굉장히 무겁고 느립니다.

 

✔ Docker

하드웨어에 설치된 운영체제에 Container Engine이라는 소프트웨어를 설치하여

개별적인 컨테이너를 만들어 각각의 어플리케이션을 고립된 환경에서 구동할 수 있습니다.

여기서 가장 많이 사용하는 Container Engine 중 하나가 바로 Docker입니다.

 

한마디로, VM의 경량화 버전으로 나온 컨테이너 격리 시스템입니다.

 

 

도커 컨테이너를 만드는 방법

 

도커를 사용하기 위해서는 Dockerfile, Image, Container를 필요로 한다.

 

Dockerfile

도커파일은 컨테이너를 어떻게 만들어야하는지에 대한 설명서이다.

 

아래와 같은 내용을 포함하고 있다.

  1. 어플리케이션을 구동하기 위한 파일은 무엇이 존재하는가?
  2. 어떤 dependencies를 다운받아야하는가?
  3. 필요한 환경변수
  4. 구동 방법에 대한 script

Image

이미지는 어플리케이션을 실행하는데 필요한 코드, 런타임, 환경, 라이브러리 등이 포함되어있다.

 

쉽게 정리하면 실행되고 있는 어플리케이션의 상태를 이미지로 변환한다고 생각하면된다.

하지만 한 번 만들어지면 변경이 불가능하다는 점은 주의해야한다.

 

Container

컨테이너는 이미지를 고립된 환경 및 개별적인 시스템 안에서 실행할 수 있는 공간을 의미한다.

즉, Container 안에서 Image를 이용하여 어플리케이션을 구동한다.

 

 

도커 컨테이너를 배포하는 방법

  1. 로컬 환경에서 만든 이미지를 Container Registry에 Push 한다.
  2. 서버는 Container Registry 에서 이미지를 Pull 하여 사용한다.
  3. 사용할 때 서버에는 Docker가 필수로 설치되어야한다.

 

도커 사용방법 총정리

 

  1. 사용자는 Local 환경에서 Docker를 설치한 후에 Dockerfile을 생성한다.
  2. Dockerfile을 Build 하여 Image로 변환시킨다.
  3. 만들어진 Image를 Container Registry에 Push 한다.
  4. 실제 서버에 Docker를 설치한 후에 Container Registry에서 Image를 Pull 한다.
  5. 이후에는 Docker에서 Image를 Run 한다.

 

 

 

본 포스트는 작성자가 공부한 내용을 바탕으로 작성한 글입니다.
잘못된 내용이 있을 시 언제든 댓글로 피드백 부탁드리겠습니다.
항상 정확한 내용을 포스팅하도록 노력하겠습니다.

반응형

댓글