도커란 무엇인가?
도커란 Go언어로 작성된 컨테이너 기반 오픈소스 가상화 플랫폼이다. 여기서 컨테이너란, 플랫폼에 상관없이 어플리케이션을 실행할 수 있는 기술을 의미한다. 컨테이너를 사용하면 환경에 구애받지 않고 어디서든 똑같은 실행환경을 구축할 수 있다.
도커를 사용하면 운영체제가 실제로 컴퓨터 호스트에 설치되지 않고 독립된 환경에서 돌아가기 때문에, 가상머신과 비교 시 메모리 점유율, 성능면에서 이점이 있다.
가상머신(Virtual Machine)과 도커(Docker) 비교
가상머신은 하드웨어를 가상화하는 방식이고, 도커는 운영체제를 가상화하는 방식이다.
가상머신(VM, Virtual Machine)
Hypervisor를 이용해 하나의 Host OS에서 여러개의 Guest OS를 사용하는 방식이다. Guest OS를 하나씩 설치하는 형태로, 하나의 완전한 컴퓨터를 생산하는 식의 환경으로 오버헤드가 크고 매우 무겁다.
하지만, Guest OS간 독립된 공간과 자원을 할당받으므로 보안성 측면에서 좋다.
도커(Docker)
도커는 하나의 Host OS위에 Docker를 설치하여 그 위에 각각의 어플리케이션 환경들을 설치하는 형태다. 어플리케이션들마다 OS를 생성하는 것이 아닌 하나의 Host OS 위에서 자원을 공유하기 때문에 상대적으로 가볍다.
또한, 컨테이너 기반이기 때문에 VM보다 메모리 공간을 적게 차지하고 더 적은 운영체제를 필요로 한다.
도커의 장점
빠른 실행속도
- OS를 실행하지 않고도 컨테이너 실행이 가능하다
- 컨테이너는 상대적으로 경량이다
비용 절감 효과
- 컨테이너 크기가 매우작다
- 하나의 물리적 서버에 다수의 컨테이너 올릴 수 있다
- Docker hub를 통해 다양한 Docker Image를 손쉽게 다운받을 수 있다
쉽고 빠른 실행 환경 구축
- 협업시 도커로 초기 개발환경 구축을 해두면 팀원 모두 동일한 환경에서 개발이 가능하다
- 개발을 마치고 개발환경 그대로 배포할 수 있다
'Develop > Docker' 카테고리의 다른 글
[Docker] Certbot컨테이너를 통한 HTTPS 프로토콜 적용 (0) | 2021.10.14 |
---|
댓글