[Docker] 도커 개념정리

지식저장소

[Docker] 도커 개념정리

열렙생활 2020. 12. 4. 22:57
반응형

Docker 도커

컨테이너 기반의 오픈소스 가상화 플랫폼이다. 

다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램을 배포 및 관리를 단순하게 해준다. 

 

도커 컨테이너
컨테이너(Container)sms 개별 Software의 실행에 필요한 실행환경을 독립적으로 운용할 수 있도록 기반환경 또는 다른 실행환경과의 간섭을 막고 실행의 독립성을 확보해주는 운영체계 수준의 격리 기술을 말한다.

 

가상머신과 컨테이너의차이 (Vitural Machines VS Containers )

가상 머신은 하드웨어 스택을 가상화한다. 컨테이너는 이와 달리 운영체제 수준에서 가상화를 실시하여 다수의 컨테이너를 OS 커널에서 직접 구동한다. 
컨테이너는 훨씬 가볍게 운영체제 커널을 공유하며, 시작이 훨씬 빠르고 운영체제 전체 부팅보다 메모리를 훨씬 적게 차지한다.

 

가상화 (VIRTUALIZATION)
하이퍼바이저라고 하는 소프트웨어는 리소스가 파티셔닝되어 VM 전용으로 할당될 수 있도록 리소스를 물리 머신에서 분리한다. 사용자가 물리 환경의 추가 리소스를 요구하는 VM 명령을 발행하면 하이퍼바이저는 이 요청을 물리 시스템으로 전달하고 변경 사항을 캐싱한다.  VM은 물리 서버처럼 보이고 작동하므로 애플리케이션 종속성 및 대규모 OS 설치 공간(단일 애플리케이션이나 마이크로 서비스를 실행하는 데는 거의 필요하지 않음) 의 단점을 증대시킬 수 있다. 

컨테이너 (CONTAINERS)

컨테이너는 마이크로서비스 또는 애플리케이션과 이를 실행하는 데 필요한 모든 것이 포함되어 있다.  컨테이너에 있는 모든 것은 '이미지' 라고 하는 모든 라이브러리와 종속성을 포함하는 코드 기반 파일에 저장된다. 이 이미지는 RPM 패키지 및 구성파일과 함께 제공되므로 이 파일은 Linux 배포파일로 간주 될 수 있다.  컨테이너는 너무 작기 때문에 일반적으로 컨테이너 오케스트레이션 플랫폼(Red Hat OpenShift 및 쿠버네티스)을 사용하여 컨테이너를 프로비저닝 하고 관리한다. 

 

 

도커 이미지 

 도커 이미지란 컨테이너를 생성하기 위해 필요한 파일. 도커 이미지를 실행하여 컨테이너를 생성한다. 디스크에 저장된 프로그램과 이를 실행했을때 메모리에 상주하게되는 프로세스와 같은 관계.

 베이스 이미지란 배포판 리눅스에서 유저랜드(Uer Land)만을 포함하는 파일. 직접 베이스 이미지를 만들 수도 있으며, 어플리케이션까지 포함되는 베이스 이미지도 있다. 즉 도커 이미지는 베이스 이미지에 필요한 어플리케이션 및 라이브러리등을 포함시킨 것을 의미한다.

 

도커 레이어 Docker Layer

도커 이미지는 불필요한 용량 증가를 줄이기 위해 레이어 Layer라는 개념을 사용하고 유니온 파일 시스템을 이용하여 여러개의 레이어를 하나의 파일시스템으로 사용할 수 있게 해준다.

 

도커 이미지 원격저장소 Docker Hub

 GitHub에서 소스를 관리하듯이 도커에서는 이미지를 Docker Hub( hub.docker.com/ )  라는 중앙 저장소에서 관리하며, 이미지 버전 관리 기능까지 제공한다. 

 

도커파일 Docker File

 도커파일이란 도커 이미지를 만들기 위한 여러가지 명령어의 집합이다. 

 

 

 

참고자료


cultivo-hy.github.io/docker/image/usage/2019/03/14/Docker%EC%A0%95%EB%A6%AC/

www.redhat.com/ko/topics/containers/containers-vs-vms

dololak.tistory.com/352

반응형