정구리의 우주정복

[Docker] 1. Docker란 무엇인가? 본문

STUDY/DOCKER

[Docker] 1. Docker란 무엇인가?

Jungry_ 2023. 10. 10. 22:17
반응형

Docker란 ?


도커란 컨테이너를 만들고, 관리하기 위한 도구이다. (A tool for creating and managing containers)

 

그렇다면 컨테이너는 무엇일까 ? 

컨테이너는 코드 패키징 도구이다 ! software 에 필요한 실행환경을 독립적으로 운용할 수 있도록 해주는 운영체제 수준의 격리 기술이다

동일한 container 는 항상 동일한 결과를 반환하게 된다

 

만약 회사에서 많은 사람들이 같은 프로젝트를 할 경우 똑같은 개발 환경을 가져야한다. 조금이라도 다르면 , 같은 코드에 대해서 다른 결과가 나올 수 있고 문제점을 찾기 아주 힘들것이다 

이러한 경우에 container 에 필요한 개발환경을 구축해놓으면 모두가 동일한 환경을 가져다 쓸 수 있다.

 

혼자 일하는 경우에도 유용하게 사용할 수 있는데

만약 A프로젝트는 python 2버전을 사용하고 B 프로젝트는 python 3 을 사용한다면 매번 버전을 바꿔주고, 다시깔고 해야한다

이때 각 프로젝트를 각각의 컨테이너에 저장하게 된다면 이러한 문제가 사라지게 된다 !

 

VM vs Container


그렇다면 VM (virtual machine) 과 container 의 차이는 무엇일까 ?

둘다 캡슐화 된 환경이니까 똑같은거 아님 ??? 이라고 생각할 수 있지만 아니다 !

 

VM 에 대한 설명

캡슐화도 되고 고유 설정도 되지만 OS 를 각 VM 마다 설치해줘야한다 그래서 용량도 엄청 커지고 어쨌든 로컬 PC 에서 VM 띄워서 하는건데 OS 를 여러개 실행하려하니 성능이 저하된다.. 또한 다른 컴퓨터에 설치도 가능하지만 정확히 똑같은 환경을 만들기가 복잡하다는 단점이 있다

 

Container 에 대한 설명

VM 과 똑같이 캡슐화 되고, 독립된 환경을 구성 가능하지만 VM 과의 큰 차별점은 OS 를 개별로 설치 할 필요가 없다는 것이다 ! 만약 설치하더라도 완전 기본기본 OS 만 설치하면 되어서 VM 에 비해 용량이나, 성능에 대한 부담이 덜 하다 

또한 image 를 생성해서 다른 환경에서도 쉽게 공유나 , rebuild 가 가능하다는 장점이 있어서 오늘 날 VM 보다 Container 를 더 많이 사용한다

 

 

 

무슨 말인지 두루뭉술하게만 알아들을 수 있지만 지금은 이정도면 되지 않을까 ..!!!

더 알려주고싶으신게 있는 분들은 댓글로 많이 많이 알려주세요 많이많이

반응형
Comments