Why use Docker
- "host operating system 에서 container 라고 불리는 샌드박스를 통해 어플리케이션을 손쉽게 deploy 하기 위해 사용된다."
- container 를 사용하는 주요 이점은 컴퓨팅 환경에 상관없이 어플리케이션이 신뢰있고 빠르게 작동할 수 있게 해주는데, 이는 container 안의 코드 및 모든 dependencies 들이 이쁘게 package up 되기 때문이다.
- 이러한 decoupling 을 통해 어플리케이션이 클라우드 서버, 회사 내부 서버, 개인 컴퓨터 등 환경에 상관없이 deploy 되도록 해준다.
용어
- Image: container 의 기반을 형성하는 어플리케이션의 청사진을 뜻한다. Image 는 어플리케이션을 구동하는데 필요한 모든 실행 가능한 소프트웨어(ex: 코드, 런타임, 시스템 도구, 시스템 라이브러리, 세팅 등) 의 총합 이며, 가볍고 단일적이다.
- Containers: 이는 image 및 container 를 실행하는데 필요한 네트워크 connections 및 storage options 등을 포함한 추가적인 configuration options 에 의해 정의된다.
- Docker daemon: Docker container 의 building, running, 및 distribution 을 관장하는 host 의 background service 이다. daemon 은 클라이언트와 소통 하는 OS 에서 작동하는 process 를 말한다.
- Docker client: 사용자가 Docker daemon 과 상호작용 할 수 있게끔 해주는 CLI 이다. 다른 형태의 클라이언트로써 존재 할 수 있다.
- Docker hub: Image 들의 registry 이다. Registry 란 존재하는 모든 Docker image 들의 directory 라고 할 수 있다.