-
Docker, Container, VM과 차이IT기술 2021. 8. 16. 20:33
docker?
컨테이너 기반의 오픈소스 가상화 플랫폼
컨테이너?
서버에서 사용하는 (설치되는) 다양한 프로그램, 환경설정 등을 추상화한 단위로
격리된 공간에서 프로세스가 동작하는 기술임.
왜 컨테이너?
컨테이너가 화물운송 업계의 표준화를 이루어 낸 것과 유사하다.
관리자 입장에서는 컨테이너 단위의 동일한 인터페이스를 제공하여 효율적인 컨테이너 관리를 할 수 있다.
컨테이너 내부는 설치 프로그램, 설정 등을 추상화(이미지화)할 수 있다.
이렇게 추상화된 컨테이너는 환경 제약 없이 legacy, cloud(Azure, GCP,AWS 등)에서 운영 가능하다.
VMware와 뭐가 다른건가?
VMware는 HW위에 떠있는 Host OS(Hypervisor)위에 각각의 Guest OS를 띄워서 사용하기 때문에
Guest OS마다 독립된 자원을 할당해야하며 (자원이 많이 필요) OS 단위로 설치되기 떄문에 무겁다.
반면, Docker는 HW에 하나의 Host OS 위에 Docker가 설치되며, 바로 컨테이너들을 구동시킨다.
즉, Hypervisor 없이 HW의 Kernel에서 컨테이너를 수행시키기 때문에
전통적인 가상화 기술에 비해 훨씬 구동속도가 빠르다.
VMware와 달리 각각의 OS가 필요하지 않기 때문에 자원활용 면에서 훨씬 유리하며, 가볍고, 빠르다.
Docker Image
서비스에 필요한 각종 프로그램, 설정값, 라이브러리, 컴파일된 실행파일을 묶는 형태
Docker Container
Docker Image를 실행한 형태로, 프로세스화 된 형태
도커 컨테이너의 특징
Layer 방식의 이미지
VMware의 snapshot과 유사한 개념으로, 관리자의 설정단위로 Layer를 찍을 수 있다.
(손 쉽게 이전 버전의 컨테이너로 roll back이 가능함)
DockerFile
Docker의 이미지를 관리하기 위한 자체 Docker의 자체 파일로, (DSL : Domain specific Language)
이미지에 어떤 history가 있는지 확인할 수 있다. (Ansible 이딴걸로 히스토리 관리할 필요가 없다)
Docker-compose
Docker를 실행하기 위한 각종 옵션들을 매번 치기 상당히 번거롭기 때문에
이를 관리하기 위한 일종의 툴. (yml 형태의 File)
원래는 Fig-project라는 3rd party 솔루션의 느낌이었으나.
도커에서 흡수해버려서 리눅스 기반의 도커를 설치하면 기본 내장되어 있다.
dockerFile은 image를 assemble하기 위한 file이며 (run은 하지 않음)
docker-compose는 image를 run하기 위한 옵션을 관리하는 file (run 함)
'IT기술' 카테고리의 다른 글
vlan과 Trunc (0) 2022.05.23 Putty 화면설정 (0) 2022.05.18 Telegraf influxDB Grafana (2) (1) 2021.07.29 Telegraf influxDB Grafana (0) 2021.07.26 IPMI (0) 2021.03.06