Docker Structure


### 도커는 클라이언트/서버 애플리케이션으로 클라이언트인 Docker CLI와 서버인 Docker daemon으로 구성

[Docker Engine](https://texonom.com/docker-engine-73b5452b0f5f4a3eb067de905966fc5d)



- 유연성 (Flexible) : 복잡한 어플리케이션들도 모두 컨테이너화 할 수 있다.
- 경량화(Lightweight) : 컨테이너는 호스트 커널을 활용하고 공유한다.
- 변화관리 편의성 (InterChangeable) : 업데이트 및 업그레이드를 즉시 배포할 수 있다.
- 포터블 (Portable) : 로컬로 구축하고, 클라우드와 가상화에 배치도 가능하며, 어디서나 실행이 가능하다.
- 확장성 (Scalable) : 컨테이너 복제본을 늘리고 자동으로 배포할 수 있다.
- 스택화(Stackable) : 서비스들에 대한 수직적 또는 수평적 디자인이 매우 용이하다.

알파인 리눅스 용략적고 보안좋은

이미지는 코드, 런타임, 라이브러리, 환경 변수 및 구성 파일, 어플리케이션 등을 실행하는 데 필요한 모든 것을 포함하는 실행가능한 패키지이다.
컨테이너는 이미지의 런타임 인스턴스 단위이며, 이미지가 컨테이너로 실행이 될 때 메모리로 로딩이 된다.
이러한 이미지의 개념은 컨테이너를 구성하는데 있어서 매우 중요한 컨셉이다.
도커의 이미지는 기본 이미지라고 하는 베이스 이미지와 자신이 필요한 어플리케이션, 라이브러리를 포함 하는 이미지로 논리적으로 구분지을 수 있는데,구분의 경계는 모호하다.

컨테이너의 동작 방식은 여러개의 컨테이너들이 같은 호스트 시스템의 커널을 공유하는 방식이다. 
이와 다른 가상화 방식은 하이퍼바이져를 통해 호스트 리소스에 대한 제어권을 소유하는 방식이다.
![](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fecb7e024-0ef2-4f9a-9fb8-56cfb6ce3b35%2F.png?table=block&id=3845e9f6-4559-4e22-80be-0945066c6546&cache=v2)



### dockerfile
> [Docker 한번 해볼까?](https://medium.com/@haho6629/docker-%ED%95%9C%EB%B2%88-%ED%95%B4%EB%B3%BC%EA%B9%8C-b061ca10b64d)






