Docker 란?

  • 컨테이너 기반의 독립된 실행환경을 만들어주는 플랫폼
  • 애플리케이션을 쉽게 만들고, 테스트하고, 배포할 수 있게 도와주는 소프트웨어 플랫폼이다

주요 키워드

  • 이미지 : 애플리케이션과 모든 실행에 필요한 모든 파일을 포함한 템플릿, 컨테이너를 생성하기 위한 청사진

  • 컨테이너 : 이미지를 실행한 상태, 이미지가 정적인 템플릿이라면 컨테이너는 실제로 어플리케이션이 실행되는 동적인 환경

  • Dockerfile : 이미지 생성을 위한 명령어가 담긴 스크립트 파일

  • DockerHub : 이미지를 저장하고 공유하는 중앙 저장소

컨테이너 = 서버의 한 종류 서버 = 소프트웨어가 실행되는 하드웨어 (like 컴퓨터)

하나의 서버에서는 하나의 소프트웨어만 실행하는게 안전 근데 너무 낭비다

가상화 기술 하나의 서버에서 여러개의 소프트웨어를 실행하기 위한 기술

  • 가상화 머신
  • 컨테이너

가상화 머신 < 컨테이너

  • 가볍고 빠르다!

도커 : 컨테이너를 관리하기 위한 도구 k8s : 도커가 실행중인 여러대의 서버를 관리하기 위한 도구 컨테이너 오케스트레이션 도구

결론

  • 컨테이너를 사용하면 한대의 서버에서 여러개의 소프트웨어를 안전하고 효율적으로 운영할 수 있음
  • 도커는 컨테이너를 관리하기 위한 도구
  • k8s는 서버가 여러 대 있는 환경에서 각각의 서버의 도커에게 대신 지시해주는 오케스트레이션 도구

Ref