본문 바로가기
Docker

[Docker] 도커에 대해 알아보자!

by 개복취 2023. 8. 30.

신도커보다 구도커가 더 귀엽다

 

Docker?

도커의 주 목적은 서버환경을 격리하기 위해 사용한다.
이를 독립된 환경에서 격리하는 기능을 통해 프로그램 간 의존성 이슈 또는 버전 이슈가 생기지 않도록 도와준다.

  • 의존성 이슈 : 서로 다른 시스템이지만 같은 디렉토리를 공유할 수 있다.
  • 버전 이슈 : 프로그램은 한 서버에 한 버전만 설치할 수 없기 때문에, 때에 따라서 호환이 되지 않는 경우가 발생할 수 있다.

또한, 뒤에서 설명할 것이지만 도커는 컨테이너로 격리시키기에 여러 가지 서버 기능을 비교적 가볍고 안전하게 운용할 수 있다.

 

 

Container

Containers

도커는 사실 얼굴마담이고, 핵심은 컨테이너에 있다고 봐도 무방하다.

 

컨테이너는 개발에 상당히 용이한 특징을 가지고 있다. 몇가지 특성을 이야기 하자면...

  1. 컨테이너로 완전히 격리되어 발생하는 여러 프로그램이 한 서버에서 생기는 문제를 대부분 해결 할 수 있다.
  2. 컨테이너를 이용해 여러 서버 기능을 함께 실행할 수 있다.
    : 가령, 한 대의 물리적인 서버에서 컨테이너 기술을 활용하여 여러 개의 웹서버를 올릴 수 있다.
  3. 컨테이너는 자유롭게 옮길 수 있다.
    : 실제로 컨테이너 자체를 옮긴다기 보다는, 정보를 내보내고 다른 도커 엔진에서 복원하는 형태이지만 어려운 일이 아니다.
    이러한 특성을 통해 같은 상태로 튜닝한 컨테이너를 팀원들에게 배포해서 동일한 개발환경을 구축할 수 있다.

컨테이너의 선지자 생텍쥐베리.. 몇수앞을 보셨습니까...

Docker vs. VM

프로세스/스레드 관계와 비슷해보일지도?

이쯤, 도커를 알고나게 된다면 VM과 비교를 할 수 밖에 없을 것이다.

 

공통점으로는 둘다 격리된 환경에서 실행하는 가상화 기술이다.
(엄밀히 말하면 과거에는 도커가 LXC 기술을 사용해서 같은 가상화 기술을 사용했다고 하지만 현재는 아니라고 한다.)

 

다른점으로는...

  • 도커 컨테이너는 하나의 Host OS 위에서 공유하며 독립된 환경을 제공한다.
    반면, VM에서는 하이퍼바이저 위의 Guest OS 위에서 돌아가는 환경이라 컨테이너보다 비교적 더 무겁다.
  • 도커는 OS커널을 다른 컨테이너와 공유하며 VM보다 공간을 적게 차지해서 더 많은 애플리케이션을 처리할 수 있다. 

 

 도커는 데이터 또는 프로그램 격리시키는 기능을 용이하게 제공하는 소프트웨어다.

 

 

https://www.docker.com/resources/what-container/

 

What is a Container? | Docker

A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing

www.docker.com

https://docs.docker.com/get-started/overview/

 

Docker overview

Get an in-depth overview of the Docker platform including what it can be used for, the architecture it employs, and its underlying technology.

docs.docker.com

 

'Docker' 카테고리의 다른 글

[Docker] 도커의 동작원리  (2) 2023.08.31
왜 도커이미지를 Linux Alpine으로 쓸까?  (0) 2023.08.30