[Docker] 도커를 쓰는 이유는 뭘까?

Server The SOPT·2022년 7월 21일
0
post-thumbnail

✏️작성자 : 김동재
📌작성자의 한마디 : 도커를 쓰는 이유를 알아봐요!

본 게시물은 시작하세요! 도커/쿠버네티스 서적을 참고하여 작성하였습니다.

0.도커란 무엇일까?

도커란 컨테이너 기반의 오픈소스 가상화 플랫폼입니다.

여기서 컨테이너는, 우리가 쉽게 생각하는 배에 싣는 화물 수송용 컨테이너와 같은 개념입니다. 쉽게 물건을 운반하기 위해 컨테이너 안에 여러 화물을 넣는 것입니다.

서버에서도 다양한 OS환경, 여러 프로그램들을 화물과 비유하여 컨테이너에 싣고 여러 곳으로 운반하여 배포할 수 있다는 개념에서 비슷하다고 볼 수 있습니다.

1.그렇다면 도커의 장점은?

1-1.애플리케이션의 개발과 배포가 편리

독립적인 개발 환경을 보장

우리가 서버를 처음에 할당받아 설정할 때 OS, 라이브러리, 컴파일러, 패키지 등 많은 설정이 요구됩니다. 이에 따라 버전이 변경되고 업데이트 될 때마다 다시 재설정이 필요하죠.

But 우리는 가난한 대학생 개발자이고, 호스트 OS, 즉 우리 PC을 서버 PC로 하고 이것 저것 설치한다면?
눈물의 대환장 파티가 일어날 가능성이 있습니다.(야호!)

그럼, 서버 설정에 대한 부분을 도커 컨테이너 위에서 진행한다면, 도커 컨테이너에 여러 소프트웨어를 설치하고, 설정 파일을 수정해도 호스트 OS에는 영향을 전혀 주지 않습니다.

개발 / 운영 환경의 통합

만약 개발 시에 컨테이너 내부에서 작업 후에 배포하려고 한다면, 이 내부 작업을 '도커 이미지' 라고 하는 일종의 패키지로 만들어 배포 서버에 전달합니다.

이 프로세스를 거치면 배포 서버, 개발 서버 모두 동일한 환경에서 애플리케이션 운영이 가능해집니다.
ex) 인프라 팀에서 안돌아가요 ㅠㅠ, QA팀에서 컴파일러 버전이 다르다는데요? ㅠㅠ
등과 같은 일이 없어지는 거죠!

또한 각 관계자는 테스트/운영/개발 시에 문제점을 명화하게 파악할 수 있게 됩니다.

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

마이크로 서비스(Microservices) 구조

-마이크로 서비스(Microservices)란?

모놀리식 아키텍쳐의 경우, 모든 프로세스가 긴밀하게 결합되고 단일 서비스로 실행되는 형태이므로 애플리케이션의 한 프로세스에 대한 수요가 급증하면 해당 아키텍쳐 전체를 확장해야 합니다.
여기서 여러 프로세스에 대한 로직이 추가되면서 복잡성으로 인해 새로운 아이디어를 구현하기가 어려워집니다.
이는 긴밀하게 결합된 많은 프로세스이므로, 단일 프로세스의 실패로 인한 영향의 증가할 경우 애플리케이션 가용성에 대한 위험을 가중시키게 됩니다.

마이크로서비스 아키텍쳐의 경우에는, 애플리케이션이 독립적인 구성 요소로 구축되어 각 애플리케이션 프로세스가 서비스로 실행됩니다.
이러한 서비스는 경량 API를 사용하여 잘 정의된 인터페이스를 통해 통신합니다.
또한 비즈니스 기능을 위해 구축되며 서비스마다 한 가지 기능을 수행하며,
서비스가 독립적으로 실행될 때 특정 기능에 대한 수요를 충족하도록 각각의 서비스를 배포, 확장 가능합니다.

마이크로서비스 아키텍쳐

  • 컨테이너는 수 초 내로 생성 및 시작이 가능합니다.
  • 여러 모듈에게 독립된 환경을 동시에 제공 가능합니다.
    위와 같은 도커의 장점을 살려 마이크로 서비스 구조에서 가상화 기술로 많이 사용됩니다.
    ex) 웹서비스
    DB 컨테이너 / node 컨테이너로 분리
    웹 서비스에 부하 발생 시에는 -> node 컨테이너 동적으로 늘려 부하를 분산
    * DB 컨테이너 / node 컨테이너를 독립적으로 관리 -> 이는 유지 보수에 용이

    1-3.도커 설치

    curl, wget 명령어로 다운로드가 가능하지만 도커 홈페이지에서 도커 데스크톱까지 설치해도 됩니다!

    💡 도커는 리눅스 작동에 최적화 되어 있다고 합니다!
    window, mac에서는 vmware를 깔고 그 위에 도커를 설치하기를 권장하지만, mac은 unix 기반으로 되어 있어 저는 그냥 설치했어요 ㅎㅎ
    window는 vmware나 버츄얼 박스를 설치하시면 될 것 같습니다.

mac에서 도커 설치하기
window에서 도커 설치하기

profile
대학생연합 IT벤처창업 동아리 SOPT 30기 SERVER 파트 기술 블로그입니다.

0개의 댓글