코딩공작소

MSA(4) - 도커 본문

어플리케이션개발/MSA

MSA(4) - 도커

안잡아모찌 2024. 6. 25. 23:01

마이크로서비스를 성공적으로 유지하려면 이식성 문제를 해결해야 한다.
컨테이너는 마이크로서비스에 속도와 이식성, 확장성과 같은 이점을 제공한다.
이를 해결해주는 것이 바로 도커이다.

  • 컨테이너는 이식성을 높여 준다
  • 완전히 격리된 예측 가능한 환경을 생성해준다
  • 더 빠르게 시작하고 중지할 수 있어 클라우드 네이티브가 가능하다
  • 확장 가능하고자원 활용을 최적화하는 데 능동적으로 스케줄링하고 관리할 수 있어, 애플리케이셔늬 성능과 유지 보수성을 높인다

 

 

도커란?

컨테이너로 된 소프트웨어를 서버에 배포하는 데 널리 사용되는 도구 중 하나이다.
컨테이너는 애플리케이션이 실행하는 데 필요한 모든 것을 제공하는 논리적 패키징 메커니즘을 의미한다.

 

  • 도커 데몬 : 도커 이미지를 생성하고 관리하는 
  • 도커 클라이언트 : 사용자는 클라이언트를 통해 상호 작용하며 데몬에 명령을 보내는 역할을 수행
  • 도커 레지스토리 : 이미지가 저장되는 곳. 허비는 기본 공개 레지스트리이고 전용 사설 레지스트리도 만들 수 있다
  • 도커 이미지 : 컨테이너를 생성하는 몇 가지 명령이 포함된 읽기 전용 템플릿
  • 도커 컨테이너 : 애플리케이션과 주변 환경은 이 컨테이너에서 실행된다
  • 도커 볼륨 : 도커가 생성하고 컨테이너가 사용한 데이터를 저장하는 메커니즘
  • 도커 네트워크 : 네트워크를 격리된 컨테이너의 통신 수단, bridge, host, overlay, none, macvlan의 다섯 가지 네트워크 드라이버 타입이 있다

 

 

도커 파일은

지시어와 명령어들이 포함된 단순한 테스트 파일로써 이미지 생성 과정을 자동화 한다.

도커 컴포즈는

서비스 설계와 구축이 용이한 스크립트를 작성하여 도커를 더 쉽게 사용하게 한다.

 

컨테이너를 사용하면 가상의 서버까지 모든 환경에서 개발 중인 소프트웨어를 성공적으로 실행할 수 있다
가상 머신을 사용하면 다른 컴퓨터에서 다른 컴퓨터의 동작을 에뮬레이션할 수 있다
컨테이너는 격리되고 독립적인 환경에서 의존 요소와 애플리케이션을 포함해서 실행할 수 있는 운영 체제 가상화 방법 중 하나다
컨테이너를 사용하면 실행 프로세스의 속도를 높이는 경량의 VM을 만들어 일반 비용을 줄여 비용 절감을 할 수 있다
도커는 리눅스 컨테이너를 기반으로 하는 인기 있는 오픈 소스 컨테이너 엔진이다
도커는 도커 엔진, 클라이언트, 레지스트리, 이미지, 컨테이너, 볼륨, 네트워크라는 요소로 구성되어 있다
Dockerfile은 도커 클라이언트가 이미지를 생성하고 준비하고자 호출하는 지시와 명령어가 포함된 테스트 파일이다.
이 파일은, 이미지 생성을 자동화한다
도커 컴포즈는 서비스를 그룹으로 정의하고 단일 단위로 함께 시작할 수 있게 해주는 서비스 오케스트레이션 도구다
도커 컴포즈는 도커 설치 과정의 일부로 설치되며, Dockfile 메이븐 플러그인은 메이븐과 도커를 통합한다