[Docker] Docker?
Docker란 무엇인가
- Docker 정의
- 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼
- 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징
- 컨테이너 내 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어 실행 환경이 포함되어 있음
- Kubernetes는 컨테이너 애플리케이션의 배포, 확장 및 관리를 자동화 하는 오픈 소스
- Docker 작동 방식
- VM은 서버 하드웨어를 가상화하는 방식 vs Container 기반의 Docker는 서버 운영 체제를 가상화
- Docker는 각 서버에 설치되며 컨테이너를 구축, 시작 또는 중단하는 데 사용할 수 있는 명령 제공
- Docker Architecture
- Container VS VM
- Docker 플랫폼은 하드웨어 영역에서 OS 단계로 소스를 추상화
- VM은 전체 하드웨어 서버를 추상화
- Container는 OS kernel을 추상화
- 가상화의 전혀 다른 접근법, 더 가벼운 instance
Docker Engine
- Docker Engine은 다음과 같은 구성요소로 애플리케이션 개발, run.
1) Docker Daemon – Docker image, container, network, storage volume을 관리하는 백그라운드 프로세스 – 끊임없이 Docker API 요청을 받고 처리함
2) Docker Engine REST API – 애플리케이션이 Docker Daemon과 상호작용하기 위한 API – HTTP 클라이언트에 의해 접근
3) Docker CLI – Docker 대몬과 상호 작용하기 위한 명령줄 인터페이스 클라이언트.
[Reference]
- AWS Docker : https://aws.amazon.com/ko/docker/
- Docker Engine : https://www.aquasec.com/wiki/display/containers/Docker+Architecture#DockerArchitecture-TheDockerEngine