[DEV] 도커(Docker) 란?

2023. 10. 27. 22:39초기 과업/BackEnd

작성자알 수 없는 사용자

728x90
반응형

 

기깔나는 사람들에서 새로운 크루를 찾고 있어요 👀 우리와 함께 하고 싶다면? 이 곳을 확인해 주세요. 😀

 

크루 모집 공고

IT 서비스 개발 크루 기깔나는 사람들

www.notion.so

 

 

Looking for a new crew in the cool guys 👀  if you want to join us? Please check this page. 😀

 

Crew Recruitment Notice(Global)

IT Service Development Team <Giggal People>

www.notion.so

 

안녕하세요? 기깔나는 사람들에서 백엔드를 맡고있는 김혜린입니다.

도커(Docker)의 필요성과 개념에 대해 알아보겠습니다.

 

 

 

 

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로이에 따른 일정액의 수수료를 제공받습니다."

 

 

 

 

🚀 도커(Docker)

먼저 도커에 대해 알아보기 전에 "컨테이너"의 개념, 가상머신(VM) 차이에 대해 설명드리겠습니다.

물리 서버의 공간과 비용의 절약을 위해 서버 가상화 기술을 사용합니다. 

 

가상화란? 

가상화는 하나의 서버에 충돌 없이 여러 서비스를 구동 시키기 위해 등장했습니다. 즉, 서버 자원을 나눠서 가지면서 각기 다른 서비스를 수행할 수 있습니다.

서버를 가상화한다는 것은 하나의 물리적 서버 호스트에서 여러 개의 서버 운영 체제를 게스트로 실행할 수 있게 해주는 소프트웨어 아키텍처입니다. 

 

가상화란 서버 가상화 기술을 구현할 수 있게 해주는 소프트웨어(주로 Hypervisor)를 사용하여 하나의 물리적 머신에서 가상머신(VM)을 만드는 프로세스입니다.

즉 하나의 물리적 서버 리소스에 여러 개의 서버 환경을 할당하고, 각각의 환경에 OS, Application을 실행할 수 있게 만들어 주는 것입니다.

이를 통해 서버 리소스를 최대한 활용할 수 있겠죠.


 

컨테이너(Container)와 가상머신(VM) 

가상머신과 컨테이너의 차이

가상머신에서 각 게스트 OS는 완전히 독립된 공간과 시스템 자원을 할당받아 사용합니다. 

각종 시스템 자원을 가상화하고 독립된 공간을 생성하는 작업은 Hypervisor를 반드시 거치기에 일반 호스트에 비해 성능 손실이 발생합니다. 

또한, Guest OS를 사용하기 위핸 BIn, 라이브러리, 커널 등을 전부 포함하기에 배포하기 위한 이미지가 커집니다.

즉, 성능이 느리고 용량상 단점이 있습니다.

 

이를 해결하기 위해 컨테이너가 등장했습니다.

컨테이너는 APP을 구동하기 위한 라이브러리 및 실행 파일만 존재합니다. 이미지 용량이 가상머신에 비해 대폭 줄어듭니다. 

 

컨테이너를 왜 써야할까?

정리해보자면, 컨테이너는 프로세스를 Host OS와 격리된 환경에서 관리합니다.

컨테이너에 어떤 설정을 하든 Host OS에 영향을 끼치지 않습니다.

독립된 개발 환경은 프로세스를 컨테이너 단위로 사용 가능하게 하고 프로세스의 관리, 확장이 용이해집니다. 

 

 

 


 

도커란?

도커는 리눅스 컨테이너 기반 가상화 도구입니다.  도커를 사용하는 이유를 4가지로 정리해볼 수 있습니다. 

 

1. 사용 편의성

: Docker를 통해 빠르게 컨테이너를 활용하여 애플리케이션을 어떤 환경에서든지 편하게 사용할 수 있게 합니다.

2. 속도

: 컨테이너는 더 적은 자원을 소비하고, 매번 하나의 완전한 가상 운영체제를 부팅해야 하는 VM 과 달리 몇 초면 실행 가능합니다. 

3. 도커 허브

: 도커 이미지의 앱스토어 같은 개념으로 유저들이 자유롭게 사용할 수 있습니다. 편리하게 이미지를 찾을 수 있죠

4. 모듈성과 확장성

: 어플리케이션의 기능들을 각각의 컨테이너들로 쉽게 분리가능합니다. 인증 서버, 게시판 A, B, DB 등 전부 다 다른 컨테이너에서 돌리고 이를 연결해서 사용할 수 있습니다. 

 

 

 

 

반응형

 

 


 

 

하나의 프로젝트가 구동되기 위해서는 여러 컨테이너가 필요합니다.

여러 도커 파일을 생성하는 대신 도커 컴포즈로 간단히 컨테이너의 생성을 할 수 있습니다. 

 

도커파일 예시
도커 컴포즈 파일 예시


 

이번 포스팅에서는 물리서버에서 서버의 가상화, 가상머신, 컨테이너의 개념과 도커가 왜 유용한지 알아봤습니다. 

 

 

기깔나는 사람들에서 새로운 크루를 찾고 있어요 👀 우리와 함께 하고 싶다면? 이 곳을 확인해 주세요. 😀

 

크루 모집 공고

IT 서비스 개발 크루 기깔나는 사람들

www.notion.so

 

 

Looking for a new crew in the cool guys 👀  if you want to join us? Please check this page. 😀

 

Crew Recruitment Notice(Global)

IT Service Development Team <Giggal People>

www.notion.so

 

 





"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

 

 

 

 

참고자료

🔗 - https://www.youtube.com/watch?v=fUC2OoNYoKc

https://medium.com/@jwyeom63/시작하는-이들을-위한-컨테이너-vm-그리고-도커에-대한-이야기-3a04c000cb5c

 

728x90
반응형