기본 개념
도커는 컨테이너라고 부르는 패키지 형태로 소프트웨어를 배포하는 OS-level 가상화 기술을 사용한 PaaS(platform as a service) 제품.
Paas란?
가상화 개념
도커엔진은 컨테이너를 관리하는 소프트웨어 엔진
docker 구조
docker engine 구조

- 애플리 케이션을 컨테이너 화 하기 위한 오픈소스 컨테이너 화 기술
- 도커엔진은 아래와 같은 클라이언트 - 서버 역할을 함
- docker와 같은 데몬 프로세스가 실행되는 서버
- 도커 데몬과 의사소통하기 위한 API역할
- CLI 클라이언트 docker
- 유저는 도커 엔진과 의사소통함
docker 실행 구조

- client : 나
- docker Host : EC2 서버
- container를 실행할때는 images가 필요하고 이미지는 docker hub에서 가져올 수 있음

- docker build : 이미지 만들기
- docker pull : 이미지 가져오기
- docker run : 실행
docker daemon
- dockerd
- 호스트에서 메모리에 상주하며 백그라운드에서 컨테이너를 관리하는 프로세스 (도커 관련 명령어를 실행 )
- 클라이언트의 요청을 기다리고 있다가 요청이 발생하면 이에 적절히 대응
- 즉, 메모리에 상주하면서 특정 요청이 오면 즉시 대응할 수 있도록 대기중인 프로레스를 의미함
- 우리는 즉, 사용자는 도커 데몬과 통신함
Image
- 도커 이미지는 컨테이너를 실행하기 위해 모든 것들을 모아놓은 패키지
- 코드, 라이브러리, 컨테이너가 어떻게 인스턴스화 되어야하는지 내용 포함함 + 해당 소프트 웨어 구성물이 어떻게 실행되어야 하는지
- 도커 이미지는 가상머신 환경의 스냅샷이라고 볼수 있음.
- 실행중인 도커 컨테이너의 특정 시점을 나타낸다.
container
- 실행 가능한 도커 이미지의 인스턴스
- 하나의 프로세스라고 볼수 있지만, 다른 프로세스들과 완전히 분리되어 있음
- 도커 컨테이너는 가상화된 런타임 환경
- 런타임이란 : 프로그램이 실행되고 있는 동안의 동작을 의미함
registry
- 도커 이미지를 저장하는 저장소 (보관소)
- 기본적으로 도커 허브 (docker hub)에 있는 이미지를 찾게 됨
- docker hub 사이트