[Server] Docker란 무엇일까?

Date:     Updated:

카테고리:

태그:

도커(Docker)란?

Docker

도커(Docker)는 컨테이너 기반 가상화 플랫폼으로, 응용 프로그램과 그 종속성을 격리된 환경인 컨테이너로 패키징하여 실행하는 기술 입니다.

도커라는 기술을 통해 응용 프로그램을 서로 다른 환경에서도일관되게 실행할 수 있고, 개발환경과 운영 환경 사이의 차이로 인한 문제를 줄일 수 있습니다.

또한, 도커는 가볍고 빠르며 확장성이 좋아서 개발 및 배포 프로세스를 간소화하는데 사용됩니다.

도커가 나온 배경

원시의 물리적 서버는 한 컴퓨터당 하나의 프로그램만 돌릴 수 있었습니다. 하지만, 이렇게 하면, 프로그램이 돌아가는데 필요한 정확한 사양을 맞추어서 물리 서버를 구성해야 합니다.

이 때의 문제점은, 소프트웨어의 요구사항이 달라지게 되어 소프트웨어의 요구사항보다 물리적 서버의 사양이 낮아지게 되면, 서버를 다시 구축해야 한다는 단점이 있습니다.

이러한 문제에 착안하여 나온 기술이 가상화 기술 입니다.

가상화 기술이란, 소프트웨어를 사용하여 프로세서, 메모리, 스토리지 등과 같은 단일 컴퓨터의 하드웨어 요소를 일반적으로 가상머신 (VM - Virtual Machine)이라고 하는 다수의 가상 컴퓨터로 분할할 수 있도록 해주는 컴퓨터 하드웨어 상의 추상화 계층 구축 하는 것을 말합니다.

실제 기반 컴퓨터 하드웨어의 단지 일부에서만 실행됨에도 불구하고, 각각의 VM은 자체 운영체제를 실행하며 마치 독립적인 컴퓨터인 것처럼 작동합니다.

하지만, 여기에도 문제가 있었습니다. VM은 프로그램을 실행하고, 프로그램을 업데이트하는데 너무 시간이 오래 걸렸습니다. 즉, 무거운 기술 이었습니다.

이것을 보완하고자 나온 기술이 컨테이너기술 입니다. 이것 역시 서버에서 프로그램을 실행하기 위한 가상화 기술 입니다. 컨테이너 가상화를 실행하면 한대의 서버에서 여러대의 프로그램을 안전하게 돌릴 수 있습니다. 컨테이너를 사용하는 이유는 VM 보다 가볍고 빠르기 때문입니다.

Container와 Docker의 차이

도커는 바로 이 컨테이너들을 관리하기 위한 도구 입니다. 피씨에 도커를 설치하여 쉽게 활용이 가능 합니다.

도커를 관리하는 프로그램의 필요성

이제 도커를 사용할 수 있게되어, 하나의 물리적 컴퓨터에서도 여러가지의 프로그램을 실행할 수 있게 되었습니다.

하지만, 이렇게 되니, 도커가 너무 많아져서 도커를 관리할 수 없는 상태가 되어버렸습니다. 그러한 문제점을 해결하기 위해 도커를 관리하는 매니저를 하나 만들었습니다.

그녀석이 바로 쿠버네티스 입니다.

즉, 가상화 컨테이너들을 관리하는 매니저를 쿠너베티스라고 합니다. 이것을 오케스트레이션 도구라고도 합니다.

쿠버네티스

쿠버네티스의 자세한 내용은 다른 포스팅을 통해 설명하도록 하겠습니다.

요약

  • 컨테이너를 사용하면 한 대의 서버에서 여러개의 소프트웨어를 안전하고 효율적으로 운영할수 있음
  • 도커는 컨테이너를 관리하기 위한 도구로일종의 프로그램 임
  • 쿠버네티스는 서버가 여러 대 있는 환경에서 각각의 서버의 도커에게 대신 지시해주는 오케스트레이션 도구임

Server 카테고리 내 다른 글 보러가기

댓글 남기기