[도커/Docker] Ch1. 도커란?

2021. 4. 1. 19:0004. Archives/독서

728x90
반응형

1.1. 가상 머신과 도커 컨테이너

가상 머신 : 게스트 운영체제를 사용하기 위한 라이브러리, 커널 등을 전부 포함

장점 : 완벽한 운영체제를 생성할 수 있음

단점 : 이미지가 커서 애플리케이션으로 배포하기 어려움

 

도커 컨테이너 : 리눅스의 자체기능으로 프로세스 단위의 격리 환경을 만듬

장점 : 이미지 용량 또한 가상 머신에 비해 대폭 감소, 가상화된 공간을 사용할 때의 성능 손실도 거의 없음

 

1.2. 도커를 시작해야 하는 이유

1.2.1. 애플리케이션의 개발과 배포가 편해짐

도커 컨테이너는 호스트 OS 위에서 실행되는 격리된 공간 -> 컨테이너 내부를 아무리 수정해도 호스트 OS 에는 영향 끼치지 않음

=> 독립된 개발 환경을 보장

배포할 때에도 해당 컨테이너를 '도커 이미지'라고 한느 일종의 패키지로 만들어 전달하면 됨

=> 새롭게 패키지 설치 필요 없음, 각종 라이브러리 설치 등으로 인한 의존성을 걱정할 필요도 없음

 

1.2.2. 여러 애플리케이션의 독립성과 확장성이 높아짐

모놀리스(Monilith) 애플리케이션 - 소프트웨어의 여러 모듈이 상호 작용하는 로직을 하나의 프로그램에서 구동시키는 방식

-> 소규모 서비스에서는 괜찮지만, 서비스의 기능이 복잡해지고 거대해질수록 소프트웨어 자체의 확장성과 유연성 감소

 

이를 대체하기 위한 요즘 방법 - "마이크로 서비스" 구조

- 여러 모듈을 독립된 형태로 구성 -> 언어에 종속되지 않음, 변화에 빠르게 대응 가능, 각 모듈 관리가 용이

=> 이런 구조에서 도커가 가장 많이 사용되고 있음!

반응형