Docker Intro #2

반영환·2023년 5월 22일
0

Docker

목록 보기
2/18
post-thumbnail

Docker Intro

Docker

  • 컨테이너 기술을 지원하는 다양한 프로젝트 중에 하나
  • 컨테이너 기술은 이전에도 있었으나 도커로 인해 알려짐
  • 컨테이너 기술의 사실상 기술 표준이다.
  • 2014 가장 인기 있는 클라우드 오픈 소스 2위(리눅스 재단 발표)
  • 다양한 운영체제에서 사용 가능 ( 리눅스, 윈도우, MacOS )
  • 애플리케이션에 국한 되지 않고 의존성 및 파일 시스템까지 패키징하여 빌드, 배포, 실행을 단순
  • 리눅스의 네임 스페이스와 c-groups와 같은 커널 기능을 사용하여 가상화


도커는 다양한 클라우드 서비스 모델과 같이 사용 가능하다.

  • 이미지: 필요한 프로그램과 라이브러리, 소스를 설치한 뒤 만든 하나의 파일
  • 컨테이너: 이미지를 격리하여 독립된 공간에서 실행한 가상 환경

Container Resolve

  • 동일 시스템에서 실행하는 소프트웨어의 컴포넌트가 충돌하거나 다양한 종속성을 가지고 있음 (문제상황)
  • 컨테이너는 가상머신을 사용해 각 마이크로 서비스를 격리(isolate)하는 기술
  • 컨테이너는 가상머신처럼 하드웨어를 전부 구현하지 않기 때문에 매우 빠른 실행 가능
  • 프로세스의 문제가 발생할 경우 컨테이너 전체를 조정해야 하기 때문에 컨테이너에 하나의 프로세스를 실행하도록 하는 것이 좋다. (브라우저와 비슷 !)

Container Performance


Container Isolation Tech

리눅스 네임 스페이스 : 각 프로세스가 파일 시스템 마운트, 네트워크, 유저 ( uid ), 호스트 네임 ( uts ) 등 에 대해 시스템에 독립 뷰를 제공

리눅스 컨트롤 그룹 : 프로세스로 소비할 수 있는 리소스 양 ( CPU, 메모리, I/O, 네트워크 대역대, device 노드 등 ) 을 제한

Limitaion of Docker

서비스가 커질수록 관리해야 하는 컨테이너의 양이 급격히 증가한다.
도커를 사용하여 관리를 하더라도 쉽지 않은 형태이며 배포 및 컨테이너 배치 전략이 필요하다.
즉, 오케스트레이션 도구가 필요하다.

Docker Install in Window

https://herojoon-dev.tistory.com/120

profile
최고의 오늘을 꿈꾸는 개발자

0개의 댓글