새소식

Docker

docker(도커)가 뭐고 왜 사용하는거지???

  • -

요즘 docker를 많이들 사용하고 있습니다

이런 사진을 많이들 보셨을거에요(아마도??)

저는 아래 subicura씨의 글을 보면서 공부했습니다

https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html

 

Docker(도커)가 필요한 이유

그러면 docker가 왜 핫해졌을까요??

당연히 편리하고 좋으니까 docker를 이용해서 서버를 관리하겟죠??

서버를 관리하다보면 운영체제가 바뀔 수도 있고

운영체제가 바뀌다보면 같은 설정을 다른 환경에서 또 진행해야 합니다

그리고 서버에 환경설정을 할 경우

예를들어 어떤 프로그램은 자바 버전1을 사용하고 어떤 프로그램은 자바 버전2를 사용할 수도 있습니다

이런 경우 설치가 생각보다 쉽지 않습니다( openCV 설치 같은 경우도 되게 빡썜... )

 

서버가 늘어난다??

 서비스를 제공하다가 사용자가 많아지게 되고

기존 서버 1,2대로는 감당이 안될 수도 있습니다

이런 경우에는 서버 증설이 필요합니다. 그러면 한숨부터 나오죠..

하.. 서버 설정을 또 해야 한다니.... 버전 맞추고, 포트 설정하고 ㅠㅠㅠ

생각만해도 한 숨만 나옵니다

하지만 위의 한숨 나오는 문제들을 모두 타파할 수 있는 docker(도커)가 등장합니다

 

docker(도커)의 등장

Docker는 컨테이너 기반의 오픈소스 가상화 플랫폼입니다

즉 컨테이너들을 관리하는 플랫폼이라고 생각하시면 됩니다

컨테이너 기반으로 서버 환경 설정을 쉽고 간편하게 할 수 있습니다

 

컨테이너(container)???

컨테이너는 가상화 기술중의 하나 입니다.

VMware나 VIrtualBox 같은 가상화 방식은 무겁고 느린 문제가 있었습니다

이러한 성능문제를 해결하기 위해 프로세스를 격리하는 방식이 등장하게 되고

이는 CPU나 메모리를 프로세스가 필요한 만큼만 추가로 사용하기 때문에

성능적으로 손실이 거의 없다고 합니다

서버에서 여러개의 컨테이너를 실행하여 서로 독립적으로 실행되는 환경을 쉽게 만들 수 있습니다

 

이미지(image)??

도커를 사용하다보면 이미지라는 용어를 또 만나게 됩니다

이미지는 컨테이너를 찍어내는 공장이라고도 볼 수 있습니다

컨테이너 실행에 필요한 설정들을 모두 담고 있고 이 설정 그대로 컨테이너들을 만들 수 있습니다

위와 같이 하나의 같은 이미지를 가지고 여러개의 컨테이너를 만들어 낼 수도 있습니다

즉!!! 모든 설정이 담긴 이미지 파일 하나가 있다면

서버를 새로 증설해도 바로 컨테이너를 띄워 빠르게 똑같은 환경을 구성할 수 있습니다

이것이 바로 docker의 최대 장점인것 같습니다 (이제 막 공부중인 저에게는 그렇게 느껴짐)

 

그러면 이런 이미지를 만드는 것도 일 아니냐구요??

아뇨!! 이미 많은 이미지들이 만들어져 있습니다

단지 [Docker Hub](https://hub.docker.com/) 에서 다운받아 이용하면 됩니다!!

 

레이어(layer)

도커에는 이미지라는 좋은 것이 있습니다

하지만 이미지에 프로그램을 하나 추가하고 다시 다운받는다면 큰 낭비일 수 있습니다

도커에서는 이런 문제를 해결하기 위해 레이어와 유니온 파일 시스템을 이용하여

여러개의 레이어 = 하나의 파일 시스템으로 이용할 수 있게 해준다고 합니다

예를들어 이미지가 A + B 레이어로 이루어져 있는데 apache을 그 위에 설치한다면 

A + B + apache 됩니다.  여기에 web을 올린다면 A + B + apache + web이 됩니다

여기서 web을 수정한다면 web 레이어만 다시 다운 받으면 되니 효율적이죠??

 

 

'Docker' 카테고리의 다른 글

aws에 도커(docker) 설치 및 간단한 명령어 알아보기  (0) 2020.09.04
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.