1. Docker 개념

Docker : 애플리케이션과 그 실행 환경을 하나로 묶어서, 어디서 실행하든 동일하게 동작하게 만들어주는 기술

→ 개발 환경이 다르면, 결과도 달라지기 때문에 언제나 같은 결과를 보장하기 위해 사용!

<aside> 💡

가상머신 vs. 컨테이너

가상머신 : OS 안에 또 다른 OS를 띄워서 완전히 분리된 환경을 만드는 방식 → 무겁고, 느리고, 자원을 많이 사용함

컨테이너 : 하나의 OS 안에서 앱만 따로 격리하여 실행 → 빠르고, 효육적으로 사용 가능

</aside>

Docker 동작 방법 : **이미지(Image)**를 실행하고, **컨테이너(Container)**를 만들어서 동작

도커 이미지

: 실행 환경을 정의한 설계도(운영체제, 라이브러리, 코드, 설정 파일 등 모두 포함)

→ Docker Hub(저장소)에서 내려받아 사용

도커 컨테이너

: 이미지를 실제로 실행한 결과물이자, 동작 중인 인스턴스

도커 허브

: 이미지 저장소 (전 세계 개발자들이 만든 이미지를 검색하고, 바로 사용할 수 있음)

⇒ 이미지를 검색(search)하고, 원하는 서비스를 pull 받고, 실행(run)하여 사용할 수 있음

2. 도커 컨테이너 실습