[Docker] 컨테이너 기술

Na young·2024년 1월 23일
0

Docker

목록 보기
1/8

컨테이너 기술

컨테이너
애플리케이션을 언제든 실행 할 수 있도록 필요한 모든 요소를 하나의 런타임 환경으로 패키징한 논리적 공간

  • 이러한 패키징 기술을 docker에서는 Dockerfile에 적힌 스크립트를 통해 구현

  • 즉, 애플리케이션과 종속 항목을 하나로 묶어 실행하게 해주는 운영 시스템을 가상화한 경량의 격리된 프로세스인 것

    • microVM이라고도 부름
    • OS 수준의 가상화 제공
    • 독립성을 갖기 때문에 다른 컨테이너에 영향을 주지 않는 stateless 환경 제공
  • 개인 데탑 뿐만 아니라, 기업 내의 온프레미스 서버, AWS와 같은 퍼블릭 클라우드에서도 언제 어디서든 빠르고 효율적으로 배포 가능하다 (확장성)

  • 서버구성, OS 설치, 네트워크, 개발 도구 구성 등의 반복적이고 불편한 작업에 대한 시간 낭비를 줄인다.

  • 컨테이너는 우리가 개발한 최소의 Image를 통해 실행되므로 경량이다

    • 컨테이너 이미지 생성의 best practice 중 하나는 이미지 경량화이다
  • 일반 서버 애플리케이션 실행과 달리, 언제든 프로세스 정도의 속도로 빠르게 실행할 수 있고 한 번에 여러 개의 컨테이너를 동시에 실행 가능하다

    • Docker => docker compose 기술 이용
  • 어떤 환경 (개인 or 클라우드 or OS) 에서도 동작 가능한 이식성을 보유하고 있다

  • 컨테이너 자체 애플리케이션 환경에 대한 관리만 필요 -> 서버관리 비용 절감

  • 개발팀과 운영팀의 업무 분리 -> 세분화된 작업 가능. DevOps workflow 구성에 최적


    컨테이너 사례

    • 넷플릭스 추천 서비스
    • 구글 웹, 앱 서비스
    • 당근마켓 딥러닝 기반 추천 서비스
    • 엔씨소프트 게임 서비스
    • 삼성전자 헬스 케어 서비스
    • 타다 배차 서비스
    • 토스 금융 서비스
    • 에어비앤비 추천서비스

컨테이너 생성타입

  • 컨테이너 패키징 메커니즘 시스템

  • 애플리케이션 컨테이너

  • 라우터 컨테이너


1. 시스템 (or OS) 컨테이너

호스트 OS 위에 Ubuntu와 같은 배포판 리눅스 Image를 통해 배포되는 컨테이너

  • 또 다른 VM의 형태, 내부에 다양한 애플리케이션 및 라이브러리 도구를 설치하고 실행 가능
  • LXC, LXD, OpenVZ, Linux Sercer, BSD Jails

2. 애플리케이션 컨테이너

단일 애플리케이션 실행을 위해 해당 서비스를 패키징하고 실행하도록 설계된 컨테이너

  • 3-tier 애플리케이션 같은 경우, 각 tier(frontend-backend-DB)를 개별 컨테이너로 실행하여 연결
  • Docker container runtime, Rocket
profile
개발어린이

0개의 댓글