본문 바로가기

Docker

1. Docker 란? - 장점 위주로!

글의 순서가 뭔가 뒤죽박죽 ㅋㅋㅋ


설치부터 하고 도커가 뭔지 알아보자는...!! +_+




사실 도커 회사가 투자받은 이후로(?) 홈페이지가 점점 잘 이쁘게 개편되어서

그냥 홈페이지에 있는 문서만 쭉 읽어도 이해가 잘 되긴 한다 ㅎㅎ


 출처 : https://www.docker.com/what-docker



근데 도커를 처음 보시는 분들 ( 나같은 경우 그랬음;; ) 의 경우 

컨테이너가 뭐지? 이미지?? 우리가 만화볼때 보는 이미지 인가? 하는 경우가 있을 수 있으니


도커라는 것을 공부하기 전에 도커에서 사용하는 기본적인 용어의 정의에 대해서 조금 알아보고,

더 나아가 도커라는 것이 왜 만들어지기 시작했는가를 탐색해 보면

도커의 매력에 더 빠질 수 있을것 같다!




위에 표현된 이미지를 빌려 도커! 가 뭔지 간략하게 알아보자

1. 가볍다

2. 싱글 머신 위에서는 컨테이너들이 같은 OS 커널을 쓰기때문에 가볍다!

3. 이미지 파일을 공유할 수 있다 ( 여기선 도커 이미지라고 도커만의 개념으로 보는편이 쉬움 )

4. 표준에 의거하여 만들었기 때문에 어디서든 잘 돌아간다! -> 위에는 오픈되어 있다 라고 표현

5. 보안이 좋다 ( 이건 딱히 증명하긴 애매하긴함 ㅎㅎ )



한마디로 정의하면...

도커는 컨테이너를 이용한 가상환경 플랫폼이다!



보통 도커의 장점을 잘 설명하기 위해 VM ( 가상화 - 전가상화, 반가상화 모두 포함 )과 가장 비교해서 설명을 많이 한다






아 ... 영어 ㅜㅠ 머리 아픔... ㅋㅋㅋ


간단하게 그림만 보자!!

왼쪽이 VM 의 대략적인 Layer 이고 오른쪽이 Docker 를 이용했을때 Layer 이다.


가장 큰 차이는 VM 는 Hypervisor 위에 Guest OS 를 띄우고, 그 위에 앱을 돌리기 위한 바이너리 파일들을 올려 돌린다.


하지만 Docker 는 Hypervisor 대신에 Docker Engine 이 얹혀 있고, 그위에 Guest OS 없이 바로 앱을 돌리기 위한 바이너리 파일들이 올라간다.


그림으로 딱 봐도 Guest OS 가 없다!! 그니까 앱마다 필요한 Guest OS 를 깔아줄 필요가 없으니, 가벼워 지는것이다.




그리고 책의 설명을 덧붙이면

Docker는 하드웨어를 가상화하는 계층이 없기 때문에 메모리 접근, 파일시스템, 네트워크 속도가 가상 머신에 비해 월등히 빠릅니다. 

출처 : http://pyrasis.com/book/DockerForTheReallyImpatient/Chapter01/01


VM 과 비교한 성능측정 결과 이다.



*** 도커 이미지, 컨테이너란 ?

운영체제로 보면 이미지는 실행 파일이고 컨테이너는 프로세스입니다. 이미 실행된 컨테이너에서 변경된 부분을 이미지로 생성할 수도 있습니다. 즉, 이미지를 컨테이너 위에 태워서 실행시키는 것입니다.



물론 과거에도 리눅스 컨테이너라는 개념은 존재했었다. 이와 관련해서 자세히 읽어보시고 싶으면 위 링크를 참조해라! 해당 내용은 여기서 다루지 않을거니깐...! +_+ ㅋㅋ