docker(도커) 및 쿠버네티스

docker 란 무엇인가? VM과 비교

데이터왕 2023. 12. 23. 13:14

내가 만든 프로그램이 다른 컴퓨터에서는 안돌아간다면?

  1. 설치 과정에서 중요한 파일이 빠질수 있음
  2. 운영체제가 다르고, 다른 버전이 설치되면 라이브러리 버전간 호환이슈 발생

일정하게 똑같은 환경에서 만들어 주는법 (like 밀키트)

  1. 도커 이미지(모듈 버전등 환경변수)와, 도커 컨테이너(도커이미지+운영시스템) 필요
    예) 중화요리 밀키트(도커이미지)를 웍(도커 컨테이너) 에서 센불로 요리해야 제맛!

 

Virtual Machine(docker 등장 이전의 강자) 

  • 예 ) EC2가 대표적인 VM, 맥 컴퓨터 위에서 윈도우, 리눅스들 가상 운영체제를 돌리는 경우
  • VM 구조 : 호스트 os(macitosh) 위에 VM 관리 툴( hypervisors) 가 필요하고, 그 위에 운영체제
  • VM 장단점
    장점 : 독립적이고 분리된 공간 제공, 다수의 소프트를 각 VM에서 독립적으로 실행가능
    단점 : 각 os 별로 비용, VM끼리 cpu,램, 용량들을 나눠야 해서 성능이 떨어짐

 

 

docker container

  • docker의 운영체제는 일반 운영체제에 비해서 경량화 됌(필요한 만큼만 사용)

  • Docker 제작시 사용한 호스트 OS와, 그 컨테이너 가 호환되는 OS 
    맥 : 경량화 리눅스 / 윈도우 : 윈도우, 리눅스 / 리눅스 : 리눅스 only
    +리눅스는 어디서 만들든 다 사용할수 있음

  • 장점
    1) 각 컨테이너 별로 독립적이고 분리된 공간, 소프트 각각 실행도 가능
    2) 수십 수백 컨테이너 사용시 , 각각 따로 구현에 비해 자원소비가 적음
    3) 별도의 os 라이센스 비용 필요없고, 경량화 os라 빠르게 실행됨
  • 단점
    1) 많은 컨테이너 관리 쉽지 않음
    2) 컨테이너 제작 os, 동작 os 간의 호환성 이슈
    3) GUI 소프트 개발에 적합치 않음(VM이 더 적합)

건물에 월세 세입자를 구하는것 vs 에어비엔비로 호스트를 자주 유치하는것