Docker

Container 기반의 오픈소스 가상화 플랫폼

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

컨테이너는 이미지를 실행한 상태라고 볼 수 있고, 추가되거나 변하는 값은 컨테이너에 저장됨

같은 이미지에서 여러개의 컨테이너 생성할 수 있고 컨테이너가 삭제되더라도 이미지는 그대로 남아있음

Docker는 완전히 새로운 기술이 아니라 이미 존재하는 기술을 잘 포장했다고 볼 수 있음

 

※ Container

격리된 공간에서 프로세스가 동작하는 기술(가상화 기술)

 

 기존의 가상화 방식

- OS 가상화 (ex. VMware, VirtualBox)

- 비교적 사용법이 간단

- 무겁고 느리다는 단점

 

 개선된 가상화 방식

- 전체 OS를 가상화 하는 것이 아님, 게스트 OS가 필요

- CPU의 가상화 기술(HVM)을 이용한 KVM(Kernel-based Virtual Mahcine)

- 반가상화(Paravirtualization)방식의 Xen

 

 이미지 

컨테이너 실행에 필요한 파일과 설정값, 등을 포함하고 있는 것

ubuntu 이미지 : ubuntu를 실행하기 위한 모든 파일을 가지고 있음

MySQL 이미지 : debian을 기반으로 MySQL을 실행하는 데 필요한 파일과 실행 명령어, 포트 정보, 등을 가지고 있음

Docker 이미지 : Docker hub에 등록하거나 Docker Registry 저장소를 직접 만들어 관리 할 수 있음

 

 

 

 

 

 

 

 

참고 : https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html

+ Recent posts