Docker 란?
- 컨테이너 기반의 독립된 실행환경을 만들어주는 플랫폼
- 애플리케이션을 쉽게 만들고, 테스트하고, 배포할 수 있게 도와주는 소프트웨어 플랫폼이다
주요 키워드
이미지 : 애플리케이션과 모든 실행에 필요한 모든 파일을 포함한 템플릿, 컨테이너를 생성하기 위한 청사진
컨테이너 : 이미지를 실행한 상태, 이미지가 정적인 템플릿이라면 컨테이너는 실제로 어플리케이션이 실행되는 동적인 환경
Dockerfile : 이미지 생성을 위한 명령어가 담긴 스크립트 파일
DockerHub : 이미지를 저장하고 공유하는 중앙 저장소
컨테이너 = 서버의 한 종류 서버 = 소프트웨어가 실행되는 하드웨어 (like 컴퓨터)
하나의 서버에서는 하나의 소프트웨어만 실행하는게 안전 ⇒ 근데 너무 낭비다
가상화 기술 → 하나의 서버에서 여러개의 소프트웨어를 실행하기 위한 기술
- 가상화 머신
- 컨테이너
가상화 머신 < 컨테이너
- 가볍고 빠르다!
도커 : 컨테이너를 관리하기 위한 도구 k8s : 도커가 실행중인 여러대의 서버를 관리하기 위한 도구 → 컨테이너 오케스트레이션 도구
결론
- 컨테이너를 사용하면 한대의 서버에서 여러개의 소프트웨어를 안전하고 효율적으로 운영할 수 있음
- 도커는 컨테이너를 관리하기 위한 도구
- k8s는 서버가 여러 대 있는 환경에서 각각의 서버의 도커에게 대신 지시해주는 오케스트레이션 도구
Ref
- 개발자를 위한 쉬운 도커 https://www.youtube.com/watch?v=eRfHp16qJq8