Docker[2021.11.02]

김정훈·2021년 11월 2일
0

배포

목록 보기
2/3

1. Docker

실행환경에 구애받지 않고 애플리케이션을 실행 할 수 있다.

2013년에 등장한 도커는 바로 Docker Hub라는 소프트웨어 저장소와 함께
빠르게 성장했고, 그 결과 개발자들은 쉽게 애플리케이션을 포장하고, 컨테이너
방식으로 실행할 수 있게 됨

2. 컨테이너 방식의 장점

  • 의존성 충돌 문제를 해결해 준다.
    • 컨테이너 기술은 애플리케이션을 컨테이너 내에 구성하여 컨테이너에서 실행 중인 애플리케이션은 어떠한 의존성도 공유하지 않고, 각자 고유의 의존성을 포함. 각 컨테이너가 철저하게 실행 환경이 격리되어 있음
* 컨테이너는 무엇을 격리하고 어떤 자원들을 독립적으로 소유할까?
  1. 프로세스
    - 특정 컨테이너에서 작동하는 프로세스는 기본적으로 그 컨테이너 안에서만 
      액세스 가능
    - 컨테이너 안에서 실행되는 프로세스는 다른 컨테이너의 다른 프로세스에게 영향을
      줄 수 없다. 
  2. 네트워크
    - 기본으로 컨테이너 하나에 하나의 IP 주소가 할당된다.
  3. 파일시스템
    - 컨테이너 안에서 사용되는 파일 시스템은 구획화되어 있다. 해당 컨테이너에서의
      명령이나 파일 등의 액세스를 제한할 수 있다.
  
  • 개발과 배포 환경을 일치시킨다.
    • OS에 상관없이 즉시 애플리케이션 실행 환경을 만들 수 있다.
    • 개발을 컨테이너 위에서 진행할 경우, 모든 개발팀이 동일한 환경 하에 개발을 진행 할 수 있다.
    • 서비스 배포 환경에서도 이슈를 해결 할 수 있다.
  • 수평 확장을 쉽게 해주며 각 서버에 새로운 내용을 배포하기 쉽게 만들어 준다.
    • 많은 트래픽으로 인한 서버 증설에 컨테이너 기술은 활발하게 이용, 동일한 애플리케이션 구성을 바탕으로 새로운 서버에 해당 애플리케이션을 컨테이너로 실행, 로드 밸런서에 이 서버를 추가하면 됨
    • 이러한 기술을 응용하여 새로운 버전의 애플리케이션을 테스트 운용도 가능

3. 도커 핵심 키워드

  • 컨테이너
    • 애플리케이션의 의존성, 네트워크 환경, 파일 시스템에 구애받지 않고, 도커라는 기술 위에 실행될 수 있도록 만든 애플리케이션 상자
  • 이미지
    • 이미지는 애플리케이션 및 애플리케이션 구성을 함께 담아 놓은 템플릿
    • 이를 이용하여 즉시 컨테이너를 만들 수 있음
    • 이미지를 이용해 여러 개의 컨테이너 생성 가능
  • 레지스트리
    • 이미지는 레지스트리에 저장됨
    • 대표적인 이미지 레지스트리는 Docker Hub, Amazon ECR이 있다.
    • 도커 CLI에서 이미지를 이용해 컨테이너를 생성할 때, 호스트 컴퓨터에 이미지가 존재하지 않는다면 기본 레지스트리로부터 다운로드 받음
profile
프론트엔드 개발자를 꿈꾸고 있습니다!

0개의 댓글