[Docker] 개념

olxtar·2023년 3월 21일
0
post-thumbnail

Comment

Docker에 대한 개념을 잡아보자

Reference :
도커(Docker)와 가상머신(Virtual Machine) 비교
도커 컨테이너(Container)와 이미지(Image)란?
Docker vs. Virtual Machines
도커와 컨테이너의 이해(1/3) [!] 도커관련 명령어 등 잘 설명되어 있어서 추가 20231027




Docker? Container?

[+] Immutable : adj. 변경할 수 없는, 불변의
[+] Paradigm : n. 전형적인 예(양식), 패러다임, 실례

  • 옛날에는 개개인들이 물리적인 서버를 직접 운영함
  • 호스팅 서비스가 생김 Reference : 호스팅 서비스란? \rightarrow 호스트 서버 구입 및 설치에 시간, 비용이 많이 듦
  • 가상화 \rightarrow 클라우드 환경 발전
  • 가상서버 임대
  • 가상서버의 수가 너무 많아지고 개인이 일일이 환경 세팅하기가 어려워짐
  • Immutable Infrastructure Paradigm 생김
  • \uparrow 대표적인 예가 Docker Container


Immutable Infrastructure는 OS와 서비스환경(어플리케이션, 소스코드, 라이브러리 등의 서버에 설치하는 것들)들을 이미지화(실행파일화)하여 배포, 또한 가급적 변경하지 않는 어떤 불변하는 덩어리, 즉 인프라 개념

따라서 서비스 환경의 업데이트는 서비스 환경 자체를 변경하는 것이 아닌 다른 이미지로의 교체를 의미함




Container vs Virtual Machine


\uparrow 뭐 아직 위 그림을 정확하게 이해하기는 어렵지만 포인트는 Guest OS라는 것의 존재 유무. 도커(컨테이너)는 1개의 OS를 다수의 Application가 공유하는 반면 Virtual Machine은 각각의 Application이 각각의 OS를 보유한다는 점에 집중해보자

1. Container

1개의 Host OS위에 Docker Engine을 설치하여 다수의 서비스, 즉 Application을 운영하는 형태. Application 단위의 Container에는 OS가 포함되어 있지 않으므로 상대적으로 가벼움


2. VM(Virtual Machine)

가상머신이란 1개의 서버를 다수개의 서버로 전환하는 개념으로 생성됨.
1개의 Host OS에서 다수의 Guest OS를 사용. 각 VM은 독립되어 있고 OS를 포함하므로 상대적으로 무거우나 보안성 측면에서는 좋음.






Container and Image

Docker는 서비스 환경,인프라 부분을 이미지(실행파일, 데몬이미지처럼?)화하여 가급적 변경하지 않고 사용한다.


Docker Image

도커에서 Application 서비스에 필요한 프로그램, 소스코드, 라이브러리, 컴파일된 실행파일을 묶는 형태를 Docker Image라고 한다. 즉, 컨테이너 생성 및 실행에 필요한 모든 파일과 세팅값을 가진 것

  • 1개의 Docker Image로 여러개의 Container 생성 가능
  • DockerHub를 통해 버젼관리 및 배포 가능

Image Layer

Layer란 기존 이미지에 추가적인 파일이 필요할 때 다시 다운로드받는 방법이 아닌 해당 파일을 추가하기 위한 개념이다.


Docker Container

Docker Image를 실행한 상태

  • Container는 종료 시 메모리에서 삭제되지 않고 남아있음
  • Container 삭제 시 해당 Container에서 생성된 파일들도 모두 삭제됨
  • 각 Container들은 모두 독립적
profile
예술과 기술

0개의 댓글