[Container] 1. Docker

# Docker

(출처 : https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html)

1. 개념

1-1. Docker

1-2. Container

Why?

  1. 가상머신과 컨테이너의 차이점
    • 효율성 : OS 커널을 공유하기 때문에 자원을 필요한 만큼 효율적으로 사용 가능
    • 신속성 : Guest OS가 없어 MB 단위의 크기를 가지기 때문에 배포에 소요되는 시간이 수 초에 불과
    • 라이센스 비용 절감 : Host OS 1대의 라이센스 비용만 발생
    • 안정성 : OS 커널을 공유하기 때문에, 하나의 컨테이너가 무리하게 자원 사용할 수 있음. 이러한 문제는 쿠버네티스로 해결 가능
  2. 개발 환경 이전 솔루션
    • 컨테이너에 애플리케이션과 애플리케이션을 구동하는 환경을 그대로 담아서 이잔하면, 장애 걱정 없이 신속하고 안정적으로 환경 이전 가능
  3. 마이크로 서비스화 솔루션
    • 마이크로 서비스를 컨테이너로 구성하면 애플리케이션을 기능 혹은 서비스 단위로 신속하게 배포 가능
    • 컨테이너는 독립적인 구조이기 때문에, 하나의 변경 사항이 다른 기능들에 영향을 미치지 않음

1-3. Image

1-4. 레이어 저장 방식

1-5. 이미지 경로

1-6. Dockerfile

1-7. Docker Hub