Docker : 애플리케이션과 그 실행 환경을 하나로 묶어서, 어디서 실행하든 동일하게 동작하게 만들어주는 기술
→ 개발 환경이 다르면, 결과도 달라지기 때문에 언제나 같은 결과를 보장하기 위해 사용!
<aside> 💡
가상머신 vs. 컨테이너
가상머신 : OS 안에 또 다른 OS를 띄워서 완전히 분리된 환경을 만드는 방식 → 무겁고, 느리고, 자원을 많이 사용함
컨테이너 : 하나의 OS 안에서 앱만 따로 격리하여 실행 → 빠르고, 효육적으로 사용 가능
</aside>
Docker 동작 방법 : **이미지(Image)**를 실행하고, **컨테이너(Container)**를 만들어서 동작
: 실행 환경을 정의한 설계도(운영체제, 라이브러리, 코드, 설정 파일 등 모두 포함)
→ Docker Hub(저장소)에서 내려받아 사용
: 이미지를 실제로 실행한 결과물이자, 동작 중인 인스턴스
: 이미지 저장소 (전 세계 개발자들이 만든 이미지를 검색하고, 바로 사용할 수 있음)
⇒ 이미지를 검색(search)하고, 원하는 서비스를 pull 받고, 실행(run)하여 사용할 수 있음