Docker is a set of platform as a service products that use OS-level virtualization to deliver software in packages called containers.
OS 수준 가상화를 사용하여 컨테이너라는 패키지로 소프트웨어를 제공하는 서비스로서의 플랫폼 세트
도커의 정의를 찾아보면 이렇게 나오는데, 잘 이해가 안 간다. 그래서 아주 잘 설명되어있는, 유튜브 동영상을 보고 정리 해 보았다.
가상화란 물리적 서버 자원을 효율적으로 사용하기 위한 기술이고, 가상화 기술에 따라 다음과 같이 나눌 수 있다.
하이퍼바이저 : 그림의 첫 번째 경우를 말하는 하드웨어 레벨 가상화로서, 가상 하드웨어 환경 위에 게스트 OS를 설치하여 운영. 이 경우 각각의 가상버신은 가상화된 하드웨어 상에서 자체 운영체제를 포함한 모든 구성요소를 실행하는 하나의 완전한 머신으로 격리 레벨이 높기 때문에 보안적인 측면에서 유리하다.
컨테이너 : 그림의 두 번째 경우. OS레벨 가상화로서 컨테이너 엔진으로 어플리케이션의 실행 환경을 격리한다. '도커'라는 기술로 구현된다. 컨테이너는 VM과 유사하지만, 격리 속성을 완화하여 앱 간에 OS를 공유하므로 VM보다 가볍다는 특징이 있다.
컨테이너 가상화
'컨테이너 가상화'를 실현하는 도커
도커는 컨테이너 가상화를 실현하는 기술로 성능향상, 뛰어난 이식성, 쉽게 Scale Out을 할 수 있는 유연성 때문에 널리 사용된다.
도커 클라이언트 & 도커 서버 : 사용자가 명령어를 통해 요청을 하면 REST API를 거쳐 도커 서버에서 요청을 수행한다. 서버는 지속적으로 Running되며 docker cli의 요청을 기다리고 docker프로세스를 관리한다.
Docker client와 server
도커 이미지 : Docker Image란 컨테이너를 실행할 수 있는 실행파일, 설정 값 들을 가지고 있는 것, 즉 컨테이너에서 실행시키고 싶은 어플리케이션을 Docker Image로 build 해서 실행하는 것.
도커 파일 : 도커 이미지 생성의 출발점. 이미지를 구성하기 위한 명령어를 작성하여 이미지 구현이 가능하다. 도커 파일 작성 방법
도커 컨테이너 : 도커이미지를 실행하는 '가상화 공간'이다.
docker hub, docker registry : 만들어진 이미지를 저장하고 관리할 수 있는 공간. dockerhub은 공개된 방식, registry는 비공개적으로 격리된 저장소
다음 이 시간에..!