도커는 컨테이너 기반 가상화를 제공해 애플리케이션과 종속성을 격리된 환경에 패키지화한다. 이로써 일관된 실행 환경을 유지하고 쉽게 배포할 수 있으며, 도커 이미지를 통해 애플리케이션을 효율적으로 공유하고 실행할 수 있다.
django, spring boot등의 웹 서버를 구축할 때마다 서버마다 운영체제, 컴파일러, 패키지는 차이가 발생한다.
만약 협업을 통해 여러 명이 서버를 구축을 하게된다면 지식의 차이는 존재할 것이고 기존의 서버에 학습의 깊이도 다를 것이다.
Docker는 작업자가 원하는 시점의 서버 상태를 기록하여 항상 같은 상태를 유지할 수 있게 해준다.
일반적으로 사용자는 App store에서 프로그램을 다운받고, 프로그램은 프로세스 단위로 실행이 된다.
Docker를 사용하기 위해서는 Docker hub에서 image를 다운받고, image는 container 단위로 실행이 된다. Docker hub에서 image를 다운받는 것을 pull이라 하고, image를 실행하는 것은 run이라 한다.
컨테이너란 애플리케이션 소스 코드를 임의의 환경에서 해당 코드의 실행에 필요한 운영체제 라이브러리 및 종속 항목과 결합하는 실행 가능한 컴포넌트이다.